Aether's source code relies on a few dependencies in order to run properly:
- Armadillo
- NetCDF
- nlohmann JSON library
Aether manages these dependencies using git's submodule capability. Submodules are their own repositories that are contained within a larger repository. Submodules can nest within other submodules and their contents can be edited and updated.
In order to get started, you will need to verify which version of git you have installed because git's support for submodules has changed throughout its various releases. These instructions will work for releases equal to or newer than git 2.7. In order to verify which version of git you are using, type:
git --version
mkdir external git submodule add https://github.com/nlohmann/json external/json
git config --global status.submoduleSummary true
The submodules are defined in a dot file stored in the root directory of the
repository, .gitmodules
.
cat .gitsubmodules [submodule "external/json"] path = external/json url = https://github.com/nlohmann/json
git clone https://github.com/AetherModel/Aether.git cd Aether git submodule init git submodule update
git submodule deinit external/json
git submodule deinit external/json git rm external/json git commit -m "Removed json submodule"