Install from source#
The LUE source code can be obtained from the LUE GitHub project page. CMake is used to configure and generate project files for building LUE.
The following CMake variables are used to determine which targets to build:
Variable |
Default |
Effect |
---|---|---|
|
|
Build data model C++ API |
|
|
Build modelling framework |
|
|
Build data model viewer |
|
|
Build API documentation |
|
|
Build QA targets |
Here is an example session of building the default LUE targets and installing them in $HOME/lue_install
:
cd /tmp
git clone https://github.com/computationalgeography/lue.git
cd lue
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/lue_install ..
cmake --build . --target install
Also, you can check the LUE GitHub workflow scripts behind the LUE GitHub C/I actions to see how LUE can be built on various platforms.
Targets#
Data model#
Optional features:
Variable |
Default |
Effect |
---|---|---|
|
|
Build data model Python API |
|
|
Build command line utilities |
Dependencies#
HDF5 C, Boost, fmt
LUE_DATA_MODEL_WITH_PYTHON_API
: Python, pybind11, NumPy, Guidelines Support librariesLUE_DATA_MODEL_WITH_UTILITIES
: Docopt, GDAL, Nlohmann JSON
Framework#
Optional features:
Variable |
Default |
Effect |
---|---|---|
|
|
Build modelling framework Python API |
Dependencies#
Boost, Docopt, fmt, GDAL, HPX, LUE data model, Kokkos mdspan
LUE_FRAMEWORK_WITH_PYTHON_API
: Python, pybind11, NumPy
View#
Dependencies#
Dear ImGUI, Docopt, fmt, GLFW, Nlohmann JSON, OpenGL
Documentation#
Dependencies#
Breathe, Doxygen, Graphviz, Jupyter-Book, Sphinx
QA#
Optional features:
Variable |
Default |
Effect |
---|---|---|
|
|
Build QA Python API |
|
|
Build test targets |
|
|
Localities used when testing the framework |
|
|
Threads per locality used when testing the framework |
|
|
Runwrapper to use (see |
|
|
Parcelport to use (see |
Note
Changing LUE_QA_TEST_NR_LOCALITIES_PER_TEST
and LUE_QA_TEST_NR_THREADS_PER_LOCALITY
is only relevant for
tests that depend on the HPX library. Using multiple localities (LUE_QA_TEST_NR_LOCALITIES_PER_TEST
> 1),
requires that HPX is built with support for networking.
Dependencies#
Nlohmann JSON
LUE_QA_WITH_TESTS
: Boost filesystem, system, unit-test framework librariesLUE_QA_WITH_PYTHON_API
: pybind11, Python
Dependencies#
There are at least three options for installing prerequisite libraries and tools:
Install using platform specific package manager
Install using Conan, either before building LUE or by the LUE build scripts
Build by the LUE build scripts
The next variables determine what happens in each case by default.
LUE_HAVE_FOO
:
TRUE: Search for Foo in standard locations
FALSE: Install Foo using Conan
Variable |
WIN32 |
APPLE |
Other |
---|---|---|---|
|
FALSE |
TRUE |
TRUE |
|
FALSE |
FALSE |
TRUE |
|
FALSE |
TRUE |
TRUE |
|
FALSE |
TRUE |
TRUE |
|
FALSE |
TRUE |
TRUE |
|
FALSE |
TRUE |
TRUE |
|
FALSE |
TRUE |
TRUE |
|
FALSE |
FALSE |
FALSE |
|
FALSE |
TRUE |
FALSE |
|
FALSE |
FALSE |
FALSE |
Some prerequisite libraries can optionally be built by the LUE project itself. The following variables are used to decide whether or not that is the case. By default, they are not set.
Variable |
Effect when set |
---|---|
|
Build the HPX library |
|
Build the OTF2 library (optionally required by HPX) |