Skip to content

Commit d40447f

Browse files
authored
Merge pull request #122 from njoy/party
Updated to new build system.
2 parents a3d5815 + b06e6f7 commit d40447f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+279
-7896
lines changed

.gitmodules

-24
This file was deleted.

CMakeLists.txt

+77-432
Large diffs are not rendered by default.

README.md

+1-24
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
[![Build Status](http://jenkins.njoy21.io:8080/buildStatus/icon?job=NJOY21-Testing-Docker&build=63)](http://jenkins.njoy21.io:8080/view/NJOY21/job/NJOY21-Testing-Docker/63/)
2-
31
# NJOY21 --- NJOY for the 21st Century
42
NJOY21 is the modernized version of NJOY---suitable for computing in the 21st Century. It is based on [NJOY2016](https://njoy.github.io/NJOY21).
53

@@ -24,7 +22,7 @@ NJOY21 is primarily written in modern C++. It consists of many subprojects that
2422
Please refer to the [Release Notes](ReleaseNotes.md) to see what has changed from one version to the next.
2523
2624
## Installation
27-
Instructions for building and installing NJOY21---as well as any of the subprojects---are found on our (admittedly inadequate) [website](https://njoy.github.io/Build/index.html).
25+
Instructions for building and installing NJOY21---as well as any of the subprojects---are found on our [website](https://docs.github.io/install.html).
2826
2927
## Version
3028
To see the version number for NJOY21, simply execute (after building):
@@ -37,27 +35,6 @@ NJOY21 roughly follows semantic versioning, where the version number is: `M.m.u`
3735
2. The minor version is incremented whenever a new capability is added.
3836
3. The update version is incremented whenever a new changed is added to the master (i.e., main or default) branch. This happens most often.
3937

40-
### Signature
41-
NJOY21 has many dependencies that are updated independently of NJOY21. When NJOY21 is configured (using CMake), the latest production version of those dependencies is downloaded and used for compilation.
42-
43-
If you need to build an older version of NJOY21—including older versions of all dependencies—you can do using the "signature" of that version of NJOY21. To obtain the signature simply execute:
44-
```bash
45-
njoy21 --signature
46-
```
47-
The signature (a JSON object) will be printed to the screen, which can be then be saved to a file, e.g., `signature.json`. Alternatively, `signature.json` is automatically created whenever NJOY21 is configured. The file is saved in the build directory (typically `bin`) and copied to the install directory during the `make install` phase.
48-
49-
To configure with this signature file, do the following:
50-
```bash
51-
./metaconfigure/fetch_subprojects.py signature.json
52-
53-
# Configure
54-
cmake -D fetched_subprojects=true </path/to/CMakeLists.txt>
55-
make
56-
make test
57-
make install
58-
```
59-
These are similar instructions to when you need to build NJOY21 without access to the internet.
60-
6138
## Manual
6239
The [NJOY2016 manual](https://github.com/njoy/NJOY2016-manual/blob/master/njoy16.pdf) ([download](https://github.com/njoy/NJOY2016-manual/raw/master/njoy16.pdf)) is the current manual for NJOY21.
6340

ReleaseNotes.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# Release Notes&mdash;NJOY21
22
Given here are some release notes for NJOY21. Each release is made through a formal [Pull Request](https://github.com/njoy/NJOY21/pulls) made on GitHub. There are links in this document that point to each of those Pull Requests, where you can see in great details the changes that were made. Often the Pull Requests are made in response to an [issue](https://github.com/njoy/NJOY21/issues). In such cases, links to those issues are also given.
33

4+
## [NJOY21 1.2.0](https://github.com/njoy/NJOY21/pull/122)
5+
This update makes significant changes to the build system. Instead of using a [homegrown](https://github.com/njoy/metaconfigure) method for handling dependencies, we now use the [`FetchContent`](https://cmake.org/cmake/help/v3.16/module/FetchContent.html) capabilities in CMake. We now require CMake 3.16 to configure and build NJOY21.
6+
7+
As part of this update, we have changed the install instructions, which can now be found at [docs.njoy21.io](https://docs.njoy21.io/install.html).
8+
49
## [NJOY21 1.1.1](https://github.com/njoy/NJOY21/pull/107)
510
This update fixes an issue where GCC would complain about a "maybe" uninitialized variable in [lipservice](https://github.com/njoy/lipservice). This only happens when compiled in release mode with GCC. Using the clang/LLVM compiler does not invoke this warning/error.
611

cmake/develop_dependencies.cmake

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
cmake_minimum_required( VERSION 3.14 )
2+
include( FetchContent )
3+
4+
#######################################################################
5+
# Declare project dependencies
6+
#######################################################################
7+
8+
FetchContent_Declare( ENDFtk
9+
GIT_REPOSITORY https://github.com/njoy/ENDFtk
10+
GIT_TAG origin/master
11+
GIT_SHALLOW TRUE
12+
)
13+
14+
FetchContent_Declare( dimwits
15+
GIT_REPOSITORY https://github.com/njoy/DimensionalAnalysis
16+
GIT_TAG origin/master
17+
GIT_SHALLOW TRUE
18+
)
19+
20+
FetchContent_Declare( lipservice
21+
GIT_REPOSITORY https://github.com/njoy/lipservice
22+
GIT_TAG origin/master
23+
GIT_SHALLOW TRUE
24+
)
25+
26+
FetchContent_Declare( njoy_c_bindings
27+
GIT_REPOSITORY https://github.com/njoy/njoy_c_bindings
28+
GIT_TAG origin/master
29+
GIT_SHALLOW TRUE
30+
)
31+
32+
FetchContent_Declare( tclap-adapter
33+
GIT_REPOSITORY https://github.com/njoy/tclap-adapter
34+
GIT_TAG origin/master
35+
GIT_SHALLOW TRUE
36+
)
37+
38+
FetchContent_Declare( utility
39+
GIT_REPOSITORY https://github.com/njoy/utility
40+
GIT_TAG origin/master
41+
GIT_SHALLOW TRUE
42+
)
43+
44+
#######################################################################
45+
# Load dependencies
46+
#######################################################################
47+
48+
FetchContent_MakeAvailable(
49+
ENDFtk
50+
dimwits
51+
lipservice
52+
njoy_c_bindings
53+
tclap-adapter
54+
utility
55+
)

cmake/release_dependencies.cmake

+105
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
cmake_minimum_required( VERSION 3.14 )
2+
include( FetchContent )
3+
4+
#######################################################################
5+
# Declare project dependencies
6+
#######################################################################
7+
8+
FetchContent_Declare( catch-adapter
9+
GIT_REPOSITORY https://github.com/njoy/catch-adapter
10+
GIT_TAG fb84b82ebf7a4789aa43cea560680cf745c6ee4f
11+
)
12+
13+
FetchContent_Declare( dimwits
14+
GIT_REPOSITORY https://github.com/njoy/DimensionalAnalysis
15+
GIT_TAG acd794d373c8740a788f5c9d58a6eb8ba4d9861a
16+
)
17+
18+
FetchContent_Declare( disco
19+
GIT_REPOSITORY https://github.com/njoy/disco
20+
GIT_TAG a1a7ddb2c0f69465524d8640ee29988b714a881e
21+
)
22+
23+
FetchContent_Declare( ENDFtk
24+
GIT_REPOSITORY https://github.com/njoy/ENDFtk
25+
GIT_TAG b6618b396f51e802b7ee19ba529533c27e6ac302 # tag: v0.1.0
26+
)
27+
28+
FetchContent_Declare( hana-adapter
29+
GIT_REPOSITORY https://github.com/njoy/hana-adapter
30+
GIT_TAG f58e8973c9a614dc4f3720b5581a762c61bdbb40
31+
)
32+
33+
FetchContent_Declare( header-utilities
34+
GIT_REPOSITORY https://github.com/njoy/header-utilities
35+
GIT_TAG cc2610fee15e255c151e8e22aca1e8b3d1a96b39
36+
)
37+
38+
FetchContent_Declare( lipservice
39+
GIT_REPOSITORY https://github.com/njoy/lipservice
40+
GIT_TAG a9b4696883f8b363b28b5b31eecb585ca4429c94
41+
)
42+
43+
FetchContent_Declare( Log
44+
GIT_REPOSITORY https://github.com/njoy/Log
45+
GIT_TAG 52962b7796afe37ef1d8f7edb4bf9ecb1b868d15
46+
)
47+
48+
FetchContent_Declare( njoy
49+
GIT_REPOSITORY http://github.com/njoy/NJOY2016
50+
GIT_TAG b41e221c0752d5e03ed0a74d4cb6106023a59b99
51+
)
52+
53+
FetchContent_Declare( njoy_c_bindings
54+
GIT_REPOSITORY https://github.com/njoy/njoy_c_bindings
55+
GIT_TAG 48f2de6d8573a1a4234de85bc01c902c07eeceb5
56+
)
57+
58+
FetchContent_Declare( nlohmann_json
59+
GIT_REPOSITORY https://github.com/nlohmann/json
60+
GIT_TAG e7b3b40b5a95bc74b9a7f662830a27c49ffc01b4 # tag: v3.7.3
61+
)
62+
set(JSON_BuildTests OFF CACHE INTERNAL "")
63+
64+
FetchContent_Declare( range-v3-adapter
65+
GIT_REPOSITORY https://github.com/njoy/range-v3-adapter
66+
GIT_TAG 252679d4737c8f755d87c0e1eed6c37394a2ec59
67+
)
68+
69+
FetchContent_Declare( spdlog
70+
GIT_REPOSITORY https://github.com/gabime/spdlog
71+
GIT_TAG a51b4856377a71f81b6d74b9af459305c4c644f8
72+
)
73+
set( SPDLOG_BUILD_TESTING CACHE BOOL OFF )
74+
75+
FetchContent_Declare( tclap-adapter
76+
GIT_REPOSITORY https://github.com/njoy/tclap-adapter
77+
GIT_TAG 2642a0f6913c431608c7cd2c61607cb2d775d5b9
78+
)
79+
80+
FetchContent_Declare( utility
81+
GIT_REPOSITORY https://github.com/njoy/utility
82+
GIT_TAG 4e72b708d153450bdbc7fc2b45651d71f9a183dc
83+
)
84+
85+
#######################################################################
86+
# Load dependencies
87+
#######################################################################
88+
89+
FetchContent_MakeAvailable(
90+
catch-adapter
91+
dimwits
92+
disco
93+
ENDFtk
94+
hana-adapter
95+
header-utilities
96+
lipservice
97+
Log
98+
njoy
99+
njoy_c_bindings
100+
nlohmann_json
101+
range-v3-adapter
102+
spdlog
103+
tclap-adapter
104+
utility
105+
)

cmake/unit_testing.cmake

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#######################################################################
2+
# Setup
3+
#######################################################################
4+
5+
message( STATUS "Adding NJOY21 unit testing" )
6+
enable_testing()
7+
8+
9+
#######################################################################
10+
# Unit testing directories
11+
#######################################################################
12+
13+
add_subdirectory( src/njoy21/CommandLine/test )
14+
add_subdirectory( src/njoy21/Driver/test )
15+
add_subdirectory( src/njoy21/io/Manager/test )
16+
add_subdirectory( src/njoy21/legacy/Sequence/test )

dependencies/ENDFtk

-1
This file was deleted.

dependencies/dimwits

-1
This file was deleted.

dependencies/lipservice

-1
This file was deleted.

dependencies/njoy_c_bindings

-1
This file was deleted.

dependencies/tclap-adapter

-1
This file was deleted.

dependencies/utility

-1
This file was deleted.

metaconfigure/LICENSE

-10
This file was deleted.

metaconfigure/README.md

-6
This file was deleted.

metaconfigure/__init__.py

-2
This file was deleted.

0 commit comments

Comments
 (0)