Skip to content

CMake superbuild of the daglib directed acyclic graph library and its dependencies

License

Notifications You must be signed in to change notification settings

sourceryinstitute/cmake-superproject-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

We're going to start from scratch and pull a few things from this repository into a new one under the name Framework for Extensible Asynchronous Task Scheduling (FEATS). We are preserving this repository just as an example of a CMake superbuild of the current dependency projects, most of which will not be used in FEATS.

Task Scheduler

Overview

Task Scheduler is a Fortran 2018 event-driven, asynchronous framework that directs the parallel execution of Fortran subroutines in a manner that respects various task dependencies described in a directed acyclic graph.

Structure

Task Scheduler is organized as a CMake superbuild of ExternalProjects depicted in the following dependency tree:

task-scheduler
|--dag
|  |
|--yaFyaml
   |-- gFTL-shared
       |-- gFTL

where

  • [daglib] is a directed acyclic graph library,
  • yaFyaml is a Fortran YAML API,
  • gFTL-shared contains common gFTL containers of Fortran intrinsic types.
  • gFTL is the Goddard Fortran Template Library, and

Each of the above packages is its own CMake project in a git submdodule of task-scheduler. As such, obtaining a useful copy of the current repository requires a recursive git clone as shown below.

Downloading, Building, Installing, and Testing

On Linux, macOS, or Windows Subsystem for Linux, execute the following commands inside bash or Z shell or equivalent commands in another shell:

git clone --recursive [email protected]:sourceryinstitute/task-scheduler
mkdir -p task-scheduler/build
cd task-scheduler/build
export FC=gfortran
cmake .. -DCMAKE_INSTALL_PREFIX=${PWD}/install
make -j 8
cd src
ctest
make install

where the -D argument may be omitted if the user has the write privileges for the default installation path, which might necessitate replacing the final line with sudo make install. If any of the above steps fails, including if any tests fail, please submit an issue.

About

CMake superbuild of the daglib directed acyclic graph library and its dependencies

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published