XDG Installation
Prerequisites
The XDG library requires the following software to be installed on the system:
The current method for XDG installation is to use the CMake build system. For a successful build, at least one of the following mesh libraries must be installed on the system
The location(s) of the library installation(s) should be appended to the
CMAKE_PREFIX_PATH variable in the configuration line.
For example, if MOAB is installed in $HOME/opt/moab, the configuration line (as called from the source directory with a build in build) would be:
cmake -S . -B build -DCMAKE_PREFIX_PATH=$HOME/opt/moab -DXDG_ENABLE_MOAB=ON
to configure the XDG build to use the MOAB library. If multiple libraries are installed, their paths can be separated by semicolons, for example:
cmake -S . -B build -DCMAKE_PREFIX_PATH="$HOME/opt/moab;$HOME/opt/libmesh" -DXDG_ENABLE_MOAB=ON -DXDG_ENABLE_LIBMESH=ON
The installation location for XDG is controlled by the CMAKE_INSTALL_PREFIX
variable, which can be set in the configuration line. By default, XDG will be
installed to the systmem location (e.g. /usr/local) which may require
elevated permissions. To install to a user directory, set the prefix to a path
in the user's home directory, for example:
cmake -S . -B build -DCMAKE_PREFIX_PATH=$HOME/opt/moab -DXDG_ENABLE_MOAB=ON -DCMAKE_INSTALL_PREFIX=$HOME/opt/xdg
Installation
After a successful CMake configuration, the XDG library can be built by running
make and then make install in the build directory.
Continuing from the example above:
make install
Testing
A variety of tests are built automatically. The test set will vary depending on which mesh libraries are part of the XDG build.
Tests can be run by executing the test suite with the command from the build directory:
make test
OR
ctest
Mesh Library-Specific Installation Instructions
libMesh
By default libMesh is compiled and installed with various levels of optimization
enabled, denoted by the suffixes "opt", "dbg", "devel". When configuring
XDG with libMesh, the environment variable METHOD can be set
to one of these values to ensure that the discovered version of libMesh is
compiled with the desired level of optimization. If METHOD is not set, the
default libMesh package configuration will will be used (typically
configured as "opt"). Please refer to the libMesh documentation for
the full set of allowed values for METHOD.