Dependencies - nasa/gunns GitHub Wiki

These are GUNNS dependencies on other software.

Here is a quick reference table of dependencies and their versions. Later versions of dependencies may work but aren’t guaranteed. Descriptions of each dependency follow.

GUNNS Version Trick Compiler Python _glib CppUnit Doxygen
19.0 17.1+ gcc 4.8.5+, LLVM 10.0.1+ 2.7, 3 2.34.3 1.12.1 1.6.1

Notes:

  • The Compiler column just lists what version we currently use and know that GUNNS compiles in. GUNNS probably compiles in later versions, but compilers generally get more strict over time, so newer versions will sometimes error on things that worked in older versions. We use the GNU GCC Linux and LLVM OSX. All of our C++ is compliant with the C++98 standard. We try not to use any features post-C++98 because it inevitably breaks some user.
  • For Python, GunnsDraw works with either 2.7 or 3, but some of our Trick sim input files in gunns/sims/ may only work with 2.7. We use Python for various build scripts and GunnsDraw, and in our automated integration tests. Trick also uses Python in its input processor.
  • CppUnit is only used for unit testing, which we do in our CI. If you want to updates GUNNS then we encourage you to also update and run the unit tests for your changes.
  • Doxygen is only needed to generate the Doxygen documentation. The GUNNS code is written with Doxygen comments, but we haven’t had a working Doxygen build script in a long time. Maybe we’ll bring that back someday.
  • glib: the Health & Status system handles output of info/warning/error messages to a log file, as well as defining the exception classes that GUNNS code uses. H&S requires the glib2.0 library. Depending on your linux or mac distribution, you may not have this present. Directions for building and installing glib from source:
    • Download the source at http://ftp.gnome.org/pub/gnome/sources/glib/2.34/glib-2.34.3.tar.xz
    • untar
    • ./configure
    • make
    • make install
    • make clean
      NOTE:
      • You may run into a dependency on gettext during the above ./configure step.
      • That can be found here http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.2.tar.gz
      • follow the same standard steps (untar, ./configure, make, make install, make clean)

Simulation Environment

Trick

GUNNS is compatible with and optimized for the NASA Trick simulation environment. GUNNS can also be run outside of the Trick environment.

GUNNS uses Trick for the usual simulation infrastructure stuff:

  • Run-time calls (construction/destruction, initialization, run scheduler, checkpoint/restart)
  • Dynamic memory management
  • User control & visibility (run-time via Trick View, offline via Trick Data Products)

The only direct dependency on Trick is in gunns/ms-utils/software/SimCompatibility/TsSimCompatibility.hh which has macros to do dynamic memory management, and defaults to use Trick’s memory manager. This Trick dependency can be disabled by adding -Dno_TRICK_ENV=1 to your compile flags. You can also modify TsSimCompatibility.hh to work in your particular environment.

⚠️ **GitHub.com Fallback** ⚠️