.. |br| raw:: html
CMake Configuration Options =========================== The following set of options are available to control how FleCSI is built. Several of them are `made available <../../api/user/group__config.html>`__ as C++ macros for client code. Flog (FleCSI logging utility) options ------------------------------------- * **ENABLE_FLOG [default: OFF]** |br| This option enables support for the FleCSI logging utility (Flog). When *OFF*, functions in the ``flog`` namespace and the ``flog`` macros remain defined but produce no output. * **FLOG_ENABLE_COLOR_OUTPUT [default: OFF]** |br| .. warning:: This interface is deprecated. It can now be configured at runtime using ``flog::config::color``. See also :doc:`../tutorial/runtime`. Produce colorized Flog output instead of using the output device's default colors. * **FLOG_SERIALIZATION_INTERVAL [default: 100]** |br| .. warning:: This interface is deprecated. It can now be configured at runtime using ``flog::config::serialization_interval``. See also :doc:`../tutorial/runtime`. The Flog serialization interval specifies the number of task executions after which FleCSI should check for buffered output to process. It should be set to a value that balances output timeliness (lower = more timely output) against performance (higher = less overhead from the requisite global reduction). * **FLOG_SERIALIZATION_THRESHOLD** |br| .. warning:: This interface is deprecated and not used anymore. * **FLOG_STRIP_LEVEL [default: 0]** |br| .. warning:: This interface is deprecated. It can now be configured at runtime using ``flog::config::strip_level``. See also :doc:`../tutorial/runtime`. Set the Flog strip level, which should an integer from 0 to 4. Like tag groups, strip levels are a mechanism for the user to control the amount of output that Flog generates: the higher the strip level, the fewer Flog messages will be output. There are five strip levels in Flog: ===== ===== Level Type ===== ===== 0 trace 1 info 2 warn 3 error 4 fatal ===== ===== Each number represents the largest value of ``FLOG_STRIP_LEVEL`` that will produce that type of output. That is, if the strip level is 0, all message types will be output; if the strip level is 3, only *error* and *fatal* log messages will be output. Regardless of the strip level, Flog messages that are designated *fatal* will generate a runtime error and will invoke ``std::exit``. Parallelization options ----------------------- * **ENABLE_KOKKOS** |br| This **deprecated** option is ignored for compatibility. * **ENABLE_MPI_CXX_BINDINGS** |br| This **deprecated** option is ignored. * **ENABLE_OPENMP [default: OFF]** |br| This **deprecated** option is ignored for compatibility. * **FLECSI_BACKEND [default: legion]** |br| Specify the backend to use. Currently, *legion*, *hpx*, and *mpi* are the only valid options. Documentation options --------------------- * **ENABLE_DOCUMENTATION [default: OFF]** |br| This option controls whether or not the FleCSI user- and developer-guide documentation is built. If enabled, CMake will generate these guides as PDFs in the *doc* subdirectory of the build. To build the documentation, run .. code-block:: console $ make doc * **ENABLE_DOXYGEN [default: OFF]** |br| If enabled, CMake will verify that a suitable *doxygen* binary is available on the system and will add a target for generating Doxygen-style interface documentation from the FleCSI source code (``make doxygen``, which becomes a dependency of ``make doc``). * **ENABLE_DOXYGEN_WARN** |br| This **deprecated** option is ignored for compatibility. Miscellaneous options --------------------- * **ENABLE_COVERAGE_BUILD [default: OFF]** |br| Enable build mode to determine the code coverage of the current set of unit tests. This is useful for continuous integration (CI) test analysis. * **ENABLE_GRAPHVIZ [default: OFF]** |br| If enabled, support the use of `Graphviz `_ to produce graphical visualizations of a FleCSI program's control points and actions. * **ENABLE_HDF5 [default: OFF]** |br| If enabled, support the use of `HDF5 `_ for checkpointing program state. * **CALIPER_DETAIL [default: none]** |br| A choice from ``none``, ``low``, ``medium``, and ``high`` to control which Caliper annotations are active. With ``none``, Caliper is not a dependency. * **ENABLE_UNIT_TESTS [default: OFF]** |br| Enable FleCSI unit tests. If enabled, the unit test suite can be run by invoking: .. code-block:: console $ make test * **FLECSI_ID_TYPE [default: std::uint32_t]** |br| Specify the C++ type for FleCSI topologies to use for entity IDs.