Documentation for the AMESC-CFD could be found here
- This CMake structure includes googletest as an external library using git submodule and organizes unittests in a separate executable.
- Organizes codes on a separate src directory where headers and sources have corresponding headers and sources directory.
- Developed on Ubuntu 18.04
- CMake 3.21 or above
- Doxygen 1.9.4 and above
-
sudo apt update
sudo apt install doxygen
- GraphViz required if class UML diagram generation is desired
sudo apt install graphviz
- Settings on the Doxyfile that needs to changes are
- HIDE_UNDOC_RELATIONS = NO #YES
- HAVE_DOT = YES #NO
- UML_LOOK = YES #NO
- UML_LIMIT_NUM_FIELDS = 50 #10
- TEMPLATE_RELATIONS = YES #NO
- CALL_GRAPH = YES #NO
- CALLER_GRAPH = YES #NO
- DOT_IMAGE_FORMAT = svg #png
- INTERACTIVE_SVG = YES #NO
- DOT_GRAPH_MAX_NODES = 100 #50
- DOT_TRANSPARENT = YES #NO
- Sphinx 4.4.0 and above
sudo apt-get install python3-sphinx
- Sphinx readthedocs theme
pip3 install sphinx_rtd_theme
- Breathe
pip3 install breathe
pip3 install sphinx-sitemap
- Latexmk (required for pdf generation)
- If not available can be installed with
sudo apt-get update -y
and nextsudo apt-get install -y latexmk
- If object inheritance is used, epstopdf might be required. In such cases texlive-font-utils are required which can be installed using
sudo apt-get install texlive-font-utils
- For .sty file not found use
apt install texlive-latex-extra
- If not available can be installed with
- Rpmbuild (required for .rpm package generation)
- Creating rpm will require an rpmbuild executable. To get rpm installed issue
sudo apt-get install rpm
- Creating rpm will require an rpmbuild executable. To get rpm installed issue
- NSIS 3.0 and up (required for windows installer package generation)
- Creating NSIS will require an nsis executable. In Ubuntu-18.04 nsis installer in the form of .deb might be required as it doesn't come with the distribution. The installation file could be found here. It might also require a dependency on nsis-common which can be downloaded from here. The debian packages are searched and found on the website here. Installation of .deb package is done using the command
sudo dpkg -i DEB_PACKAGE_NAME
- Creating NSIS will require an nsis executable. In Ubuntu-18.04 nsis installer in the form of .deb might be required as it doesn't come with the distribution. The installation file could be found here. It might also require a dependency on nsis-common which can be downloaded from here. The debian packages are searched and found on the website here. Installation of .deb package is done using the command
- Assigning a git tag is easy
git tag -a v1.0.3 -m 'Version 1.0.3 - Feature 1'
git tag
lists all the available tags.- Check other
git tag
details [here].(https://git-scm.com/book/en/v2/Git-Basics-Tagging)
- Build the code
- create a directory named 'build' with
mkdir build
- change to build directory with
cd build
- copy the configure.sh to build directory with
cp ../configure.sh .
- execute configure .sh with
./configure.sh
. You may need to change executable permission withchmod +x configure.sh
- compile the code
make -j $(nproc)
. The$(nproc)
part of the code identifies the number of cpus and use all of them to compile the code.
- create a directory named 'build' with
- From within the build directory issue
cpack
command to create installer. All the .sh, .tar.gz, and .tar.Z files are the installer in different format.
- Project name needs to be changed in two places
- Line #3 of the root directory CMakeLists.txt file
set(Project Project-Name)
. The 'Project-Name' can be changed to any appropriate name. - Line #35
PROJECT_NAME = "AM-CFD"
of the Doxyfile.in located in the ./documentation directory.
- Line #3 of the root directory CMakeLists.txt file
- Under the build directory after a successful build
make docs
will generate api documentation under doc/api directory- in the doc/api/latex/ directory issuing
make pdf
will generate pdf from the generated latex files
- in the doc/api/latex/ directory issuing
- Under the doc/usermanual directory issuing
make html
will generate html documentation under doc/readthedocs/_build/html directory make latexpdf
will generate pdf documentation under doc/readthedocs/_build/latex directory