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.