Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Task/config options doc #853

Merged
merged 11 commits into from
Jun 28, 2022
6 changes: 3 additions & 3 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
# Axom project
#------------------------------------------------------------------------------

if (ENABLE_CUDA)
cmake_minimum_required(VERSION 3.9)
if (ENABLE_HIP)
cmake_minimum_required(VERSION 3.21)
rhornung67 marked this conversation as resolved.
Show resolved Hide resolved
else()
cmake_minimum_required(VERSION 3.8.2)
cmake_minimum_required(VERSION 3.14)
endif()

project(axom LANGUAGES C CXX)
Expand Down
18 changes: 14 additions & 4 deletions src/docs/sphinx/coding_guide/sec10_dev_macros.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ Please see the `AXOMMacros.hpp` header file for other available macros and
usage examples.


.. _codemacros-conditional-label:

------------------------------------
Conditionally compiled code
------------------------------------
Expand All @@ -76,10 +78,18 @@ for a debug build **must** be guarded using the `AXOM_DEBUG` macro::
// rest of method implementation
}

The Axom build system provides various other macros for controlling
conditionally-compiled code. The macro constants will be defined based
on CMake options given when the code is configured. Please see the
`config.hpp` header file in the source include directory for a complete list.
Axom provides various other macro constants for conditionally-compiled code
which reflect which built-in and third-party libraries are being used and
which Axom components are enabled. The macro constants are defined in the
``config.hpp.in`` file in the top-level Axom source directory. Each of these
macro constants has the form ``AXOM_USE_<FOO>``, where ``FOO`` is the name of
an Axom library dependency or the name of an Axom component.

When CMake is run to configure an Axom build, the macro constants are set
based on CMake options and Axom dependencies and this file is converted to
the ``config.hpp`` header file in the Axom build space. The ``config.hpp``
header file is included in all Axom source and header files for consistent
application of the macro constants throughout the code.


------------------------------------
Expand Down
Loading