Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,17 @@ The script can be executed in one of two modes: develop (default) and release.

Dependencies used are specified in the `dependencies.json` files, although this file can be overridden at the command line.

The build system generated by the `update_repositories.py` script requires that the target repository has previously added [shacl::cmake](https://github.com/shacl/cmake) as a repository.


## Dependency specifications
Each supported component's list of dependencies is included in the `dependencies.json` file. Additional components can be added to this list or a user can override the file at the command line.

The JSON file requires an entry with the same name as the component, as specified on the command line or inferred from the path. That entry should have a list of dictionaries, each representing a dependency.

Dependencies can be a string, which is taken as the name of the repository, assumed to be on the NJOY project on GitHub and using the default branch. Otherwise, dependencies can be a dictionary, where more options can be specified.
Dependencies can be a string, which is taken as the name of the repository, assumed to be on the NJOY project relative to where the project is hosted and using the default branch. Otherwise, dependencies can be a dictionary, where more options can be specified.

Dependencies specified as a dictionary must include `"name"` or `"remote"`. If `"name"` is included without `"remote"`, the remote is assumed to be `https://github.com/njoy/{name}`. If only `"remote"` is specified, `"name"` is assumed to be the basename of the path. Both can be included, which is necessary when the basename of the remote does not match the name, e.g. dimwits/DimensionalAnalysis.
Dependencies specified as a dictionary must include `"name"` or `"remote"`. If `"name"` is included without `"remote"`, the remote is assumed to be `../../njoy/{name}`. The relative URL capability is provided via [shacl::cmake](https://github.com/shacl/cmake). If only `"remote"` is specified, `"name"` is assumed to be the basename of the path. Both can be included, which is necessary when the basename of the remote does not match the name, e.g. dimwits/DimensionalAnalysis.

Including `"tag"` or `"branch"` is optional, and if neither is provided, it defaults to the master branch. If both are provided, an error occurs. This file should include primarily live-at-head dependencies, so specifying a branch is typical. However, perhaps in the case of a third-party dependency or in an overridden dependency file, a specific Git commit hash or Git tag can be used instead.

Expand Down
75 changes: 38 additions & 37 deletions dependencies.json
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
{
"ENDFtk": [
"Log",
"njoy::Log",
"catch-adapter",
"disco",
"njoy::disco",
"hana-adapter",
"header-utilities",
{"name": "range-v3",
"remote": "https://github.com/ericniebler/range-v3",
"njoy::header-utilities",
{"name": "range-v3::range-v3",
"remote": "../../ericniebler/range-v3",
"tag": "0.11.0"}
],
"ACEtk": [
"Log",
"njoy::Log",
"catch-adapter",
{"name": "dimwits", "remote": "https://github.com/njoy/DimensionalAnalysis"} ,
"disco",
"interpolation",
{"name": "njoy::dimwits", "remote": "../../njoy/DimensionalAnalysis"} ,
"njoy::disco",
"njoy::interpolation",
"hana-adapter",
"header-utilities",
{"name": "range-v3",
"remote": "https://github.com/ericniebler/range-v3",
"njoy::header-utilities",
{"name": "range-v3::range-v3",
"remote": "../../ericniebler/range-v3",
"tag": "0.11.0"}
],
"thermr": [
Expand All @@ -33,23 +33,24 @@
],
"Log": [
"catch-adapter",
{"remote": "https://github.com/gabime/spdlog",
{"name": "spdlog",
"remote": "../../gabime/spdlog",
"tag": "a51b4856377a71f81b6d74b9af459305c4c644f8",
"setup": "set( SPDLOG_BUILD_TESTING CACHE BOOL OFF )"}
],
"GNDStk": [
"catch-adapter",
"Log",
"njoy::Log",
"pugixml-adapter",
{"name": "nlohmann_json",
"remote": "https://github.com/nlohmann/json",
"remote": "../../nlohmann/json",
"tag": "v3.7.3",
"setup": "set(JSON_BuildTests OFF CACHE INTERNAL \"\")"}
],
"NJOY2016": false,
"RECONR": [
{"name": "nlohmann_json",
"remote": "https://github.com/nlohmann/json",
"remote": "../../nlohmann/json",
"tag": "v3.7.3",
"setup": "set(JSON_BuildTests OFF CACHE INTERNAL \"\")"},
{"name": "eigen",
Expand All @@ -60,17 +61,17 @@
"catch-adapter",
"constants",
"resonanceReconstruction",
"Log",
"njoy::Log",
"twig",
"interpolation",
"elementary"
"njoy::interpolation",
"njoy::elementary"
],
"catch-adapter": false,
"constants": [
"range-v3-adapter",
"catch-adapter",
"Log",
{"name": "dimwits", "remote": "https://github.com/njoy/DimensionalAnalysis"}
"njoy::Log",
{"name": "njoy::dimwits", "remote": "../../njoy/DimensionalAnalysis"}
],
"dimwits": [
"catch-adapter",
Expand All @@ -85,41 +86,41 @@
"hana-adapter": false,
"header-utilities": [
"catch-adapter",
"Log"
"njoy::Log"
],
"interpolation": [
{"name": "range-v3",
"remote": "https://github.com/ericniebler/range-v3",
{"name": "range-v3::range-v3",
"remote": "../../ericniebler/range-v3",
"tag": "0.11.0"},
"Log",
"header-utilities",
{"name": "dimwits", "remote": "https://github.com/njoy/DimensionalAnalysis"}
"njoy::Log",
"njoy::header-utilities",
{"name": "njoy::dimwits", "remote": "../../njoy/DimensionalAnalysis"}
],
"lipservice": [
"ENDFtk",
"catch-adapter",
"hana-adapter",
{"name": "nlohmann_json",
"remote": "https://github.com/nlohmann/json",
"remote": "../../nlohmann/json",
"tag": "v3.7.3",
"setup": "set(JSON_BuildTests OFF CACHE INTERNAL \"\")"},
"utility"
],
"njoy_c_bindings": [
{"name": "njoy", "remote": "https://github.com/njoy/NJOY2016"}
{"name": "njoy", "remote": "../../njoy/NJOY2016"}
],
"resonanceReconstruction": [
{"name": "range-v3",
"remote": "https://github.com/ericniebler/range-v3",
{"name": "range-v3::range-v3",
"remote": "../../ericniebler/range-v3",
"tag": "0.11.0"},
"ENDFtk",
{"name": "eigen",
"remote": "https://gitlab.com/libeigen/eigen.git",
"tag": "3.3.8",
"setup": "set(BUILD_TESTING OFF CACHE BOOL OFF )"},
"interpolation",
{"name": "dimwits", "remote": "https://github.com/njoy/DimensionalAnalysis"},
"elementary"
"njoy::interpolation",
{"name": "njoy::dimwits", "remote": "../../njoy/DimensionalAnalysis"},
"njoy::elementary"
],
"tclap-adapter": false,
"eigen-adapter": false,
Expand All @@ -129,14 +130,14 @@
],
"utility": [
"catch-adapter",
"header-utilities"
"njoy::header-utilities"
],
"range-v3-adapter": false,
"NJOY21": [
"ENDFtk",
{"name": "dimwits", "remote": "https://github.com/njoy/DimensionalAnalysis"} ,
{"name": "njoy::dimwits", "remote": "../../njoy/DimensionalAnalysis"} ,
"lipservice",
{"name": "njoy", "remote": "https://github.com/njoy/NJOY2016"},
{"name": "njoy", "remote": "../../njoy/NJOY2016"},
"njoy_c_bindings",
"tclap-adapter",
"utility"
Expand Down
Loading