Skip to content

Commit

Permalink
Initial release.
Browse files Browse the repository at this point in the history
  • Loading branch information
tclune committed Apr 8, 2022
1 parent caad751 commit c12d25b
Show file tree
Hide file tree
Showing 11 changed files with 195 additions and 2 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*~
18 changes: 18 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[submodule "gFTL"]
path = gFTL
url = https://github.com/Goddard-Fortran-Ecosystem/gFTL
[submodule "gFTL-shared"]
path = gFTL-shared
url = https://github.com/Goddard-Fortran-Ecosystem/gFTL-shared
[submodule "fArgParse"]
path = fArgParse
url = https://github.com/Goddard-Fortran-Ecosystem/fArgParse
[submodule "pFUnit"]
path = pFUnit
url = https://github.com/Goddard-Fortran-Ecosystem/pFUnit
[submodule "yaFyaml"]
path = yaFyaml
url = https://github.com/Goddard-Fortran-Ecosystem/yaFyaml
[submodule "pFlogger"]
path = pFlogger
url = https://github.com/Goddard-Fortran-Ecosystem/pFlogger
15 changes: 15 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 3.12)
project (GFE
VERSION 1.0.0
LANGUAGES Fortran
)
cmake_policy(SET CMP0074 NEW)

enable_testing()

add_subdirectory(gFTL)
add_subdirectory(gFTL-shared)
add_subdirectory(fArgParse)
add_subdirectory(pFUnit)
add_subdirectory(yaFyaml)
add_subdirectory(pFlogger)
19 changes: 19 additions & 0 deletions ChangeLog.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# ChangeLog

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [1.0.0] - 2022-04-08

Initial release

| Package | Version |
| :------ | :------ |
| gFTL | v1.7.0 |
| gFTL-shared | v1.4.1 |
| fArgParse | v1.2.0 |
| yaFyaml | v1.0-beta8 |
| pFlogger | v1.8.0 |

138 changes: 136 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,136 @@
# GFE
Umbrella repo to contain managed versions of other GFE repositories
# Goddard Fortran Ecosystem (GFE) SDK

This repo is intendend to be a single fixture for the [Goddard Fortran Ecosystem](https://github.com/Goddard-Fortran-Ecosystem) libraries. This is useful for superprojects that depend on the GFE libraries. It is self-sufficient and prior installations of pFUnit/fArgParse/gFTL-share/gFTL are not required to run the unit tests.

## Current versions

| Package | Version |
| :------ | :------ |
| gFTL | v1.7.0 |
| gFTL-shared | v1.4.1 |
| fArgParse | v1.2.0 |
| yaFyaml | v1.0-beta8 |
| pFlogger | v1.8.0 |


## Set up

Clone the repository and update the submodules. Note that the `--recursive` flag to `git submodule update` is not required:
```console
$ git clone https://github.com/LiamBindle/GFE-SDK.git
$ cd GFE-SDK
$ git submodule update --init # don't need --recursive
```

Create a build directory, and configure the build. Set `CMAKE_INSTALL_PREFIX` to a path that GFE libraries should be installed to.

```console
$ mkdir build/
$ cd build/
$ cmake .. -DCMAKE_INSTALL_PREFIX=/my/software
...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/GFE-SDK/build
```

Compile all the GFE libraries

```console
$ make -j20
```

and lastly install (necessary for testing):

```console
$ make install
```

### Testing

The GFE libraries use the pFUnit unit testing framework. pFUnit is a GFE library itself, so to set up and run the GFE tests we need to build the tests against our installation (previous step). Point CMake to your GFE-SDK install prefix with `CMAKE_PREFIX_PATH`. Builds are enabled by setting `BUILD_TESTING` to a true boolean.

```console
$ cmake . -DBUILD_TESTING=TRUE -DCMAKE_PREFIX_PATH=/my/software
...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/GFE-SDK/build
```

Compile the tests:
```console
$ make -j20 tests
```

Finally, the tests can be executed like so

```console
$ ctest
ctest
Test project /home/user/GFE-SDK/build
[ 14%] Built target generate-type-incs
[ 17%] Built target generate-template-incs
[ 31%] Built target gftl-shared
[ 39%] Built target yafyaml
[ 43%] Built target fargparse
[ 43%] Built target posix_predefined.x
[ 43%] Built target generate_posix_parameters
[ 53%] Built target funit-core
[ 60%] Built target fhamcrest
[ 73%] Built target asserts
[ 73%] Built target funit-main
[ 73%] Built target funit
[ 78%] Built target yafyaml_tests.x
[ 78%] Built target other_shared
[ 87%] Built target new_tests.x
[ 92%] Built target funit_tests
[ 92%] Built target funit_tests.x
[ 92%] Built target robust
[ 95%] Built target remote.x
[ 95%] Built target robust_tests.x
[100%] Built target fhamcrest_tests.x
[100%] Built target build-tests
Start 1: vector_tests
1/19 Test #1: vector_tests ............................... Passed 0.01 sec
Start 2: map_tests
2/19 Test #2: map_tests .................................. Passed 0.01 sec
Start 3: set_tests
3/19 Test #3: set_tests .................................. Passed 0.00 sec
Start 4: altSet_tests
4/19 Test #4: altSet_tests ............................... Passed 0.00 sec
Start 5: fargparse_tests
5/19 Test #5: fargparse_tests ............................ Passed 0.00 sec
Start 6: unit_test_processor
6/19 Test #6: unit_test_processor ........................ Passed 0.05 sec
Start 7: processor_test_MpiParameterizedTestCaseC
7/19 Test #7: processor_test_MpiParameterizedTestCaseC ... Passed 0.07 sec
Start 8: processor_test_MpiTestCaseB
8/19 Test #8: processor_test_MpiTestCaseB ................ Passed 0.07 sec
Start 9: processor_test_ParameterizedTestCaseB
9/19 Test #9: processor_test_ParameterizedTestCaseB ...... Passed 0.07 sec
Start 10: processor_test_TestA
10/19 Test #10: processor_test_TestA ....................... Passed 0.07 sec
Start 11: processor_test_TestCaseA
11/19 Test #11: processor_test_TestCaseA ................... Passed 0.07 sec
Start 12: processor_test_beforeAfter
12/19 Test #12: processor_test_beforeAfter ................. Passed 0.07 sec
Start 13: processor_test_simple
13/19 Test #13: processor_test_simple ...................... Passed 0.07 sec
Start 14: old_tests
14/19 Test #14: old_tests .................................. Passed 0.01 sec
Start 15: robust_tests.x
15/19 Test #15: robust_tests.x ............................. Passed 0.00 sec
Start 16: new_tests.x
16/19 Test #16: new_tests.x ................................ Passed 0.01 sec
Start 17: fhamcrest_tests.x
17/19 Test #17: fhamcrest_tests.x .......................... Passed 0.00 sec
Start 18: yafyaml_tests.x
18/19 Test #18: yafyaml_tests.x ............................ Passed 0.01 sec
Start 19: pflogger_tests.x
19/19 Test #19: pflogger_tests.x ........................... Passed 0.02 sec

100% tests passed, 0 tests failed out of 19

Total Test time (real) = 0.65 sec
```
1 change: 1 addition & 0 deletions fArgParse
Submodule fArgParse added at ff26eb
1 change: 1 addition & 0 deletions gFTL
Submodule gFTL added at 2ad306
1 change: 1 addition & 0 deletions gFTL-shared
Submodule gFTL-shared added at 1c85cb
1 change: 1 addition & 0 deletions pFUnit
Submodule pFUnit added at db82e8
1 change: 1 addition & 0 deletions pFlogger
Submodule pFlogger added at 767421
1 change: 1 addition & 0 deletions yaFyaml
Submodule yaFyaml added at a6cb7f

0 comments on commit c12d25b

Please sign in to comment.