بنقرة واحدة
بنقرة واحدة
| name | building |
| description | Instructions for building Smith |
Only run compilation and test commands on a compute node. Determine this by running:
./skills/building/scripts/is_compute_node
If it prints login, do not run ./config-build.py, cmake --build ..., or ctest .... Stop and ask the user to switch to/allocate a compute node, then continue once is_compute_node prints compute.
This repository supports two build workflows:
mfem, axom, and tribol git submodules as CMake subdirectories../config-build.py -bp build -ip install -hc "$(./skills/building/scripts/determine_host_config)" --exportcompilercommands
cmake --build build -j
ctest --test-dir build
Use this only when you intend to modify/build Smith against the submodules.
git submodule update --init --recursive
./config-build.py -bp build-codevelop -ip install-codevelop -hc "$(./skills/building/scripts/determine_host_config)" -DSMITH_ENABLE_CODEVELOP=ON --exportcompilercommands
cmake --build build-codevelop -j
ctest --test-dir build-codevelop
Common CMake options (and their defaults) live in cmake/SmithBasics.cmake. Pass them at configure time as -D<OPTION>=ON|OFF, for example:
./config-build.py -hc "$(./skills/building/scripts/determine_host_config)" -DENABLE_ASAN=ON
Only set a build type when the user explicitly asks for one. Use config-build.py's -bt option, which takes a CMake build type (e.g., Debug, Release, RelWithDebInfo, MinSizeRel):
./config-build.py -bp build -ip install -hc "$(./skills/building/scripts/determine_host_config)" -bt <CMAKE_BUILD_TYPE> --exportcompilercommands
ENABLE_ASAN)AddressSanitizer is available via the ENABLE_ASAN CMake option (default: OFF). It is supported with GCC or Clang.
This should also build in with the CMake build type Debug by default.
./config-build.py -hc "$(./skills/building/scripts/determine_host_config)" -bt Debug -DENABLE_ASAN=ON
-hc)If the user does not specify a host-config file, determine the best match by running:
./skills/building/scripts/determine_host_config
Use its output as the -hc argument (as shown in the examples above). If the user explicitly provides a host-config file/path, use that instead.