HELICS CMake options¶
CMake_INSTALL_PREFIX: CMake variable listing where to install the files
HELICS_BUILD_APP_LIBRARY: [Default=ON] Tell HELICS to build the helics apps shared library
HELICS_BUILD_APP_EXECUTABLES: [Default=ON] Build some executables associated with the apps
HELICS_BUILD_BENCHMARKS: [Default=OFF] Build some timing benchmarks associated with HELICS
HELICS_BUILD_CXX_SHARED_LIB: [Default=OFF] Build C++ shared libraries of the Application API C++ interface to HELICS and if
HELICS_BUILD_APP_LIBRARYis also enabled another C++ shared library with the APP library
HELICS_BUILD_EXAMPLES: [Default=OFF] Build a few select examples using HELICS, this is mostly for testing purposes. The main examples repo is here
HELICS_BUILD_TESTS: [Default=OFF] Build the HELICS unit and system test executables.
HELICS_ENABLE_LOGGING: [Default=ON] Enable debug and higher levels of logging, if this is turned off that capability is completely removed from HELICS
HELICS_ENABLE_PACKAGE_BUILD: [Default=OFF] Enable the generation of some installer packages for HELICS
HELICS_GENERATE_DOXYGEN_DOC: [Default=OFF] Generate doxygen documentation for HELICS
HELICS_WITH_CMAKE_PACKAGE: [Default=ON] Generate a
HELICSConfig.cmakefile on install for loading into other libraries
HELICS_BUILD_OCTAVE_INTERACE: [Default=OFF] Build the HELICS Octave Interface
HELICS_BUILD_JAVA_INTERACE: [Default=OFF] Build the HELICS Java Interface
HELICS_BUILD_MATLAB_INTERACE: [Default=OFF] Build the HELICS Matlab Interface
HELICS_BUILD_CSHARP_INTERACE: [Default=OFF] Build the HELICS C# Interface
CMAKE_CXX_STANDARD: Specify the C++ standard to use in building, HELICS 3.0 requires 17 or higher which will be used if nothing is specified.
HELICS_INSTALL:[Default=ON] If set to off HELICS will not generate any install instructions
NOTE: All HELICS options are prefixed with HELICS_ to separate them from other libraries so HELICS can be used cleanly as a subproject.
There are several different additional options available to configure HELICS for particular situations, most of which are not needed for general use and the default options should suffice.
HELICS Configuration options¶
These options effect the configuration of HELICS itself and how/what gets built into the HELICS core libraries
HELICS_ENABLE_ZMQ_CORE: [Default=ON] Enable the HELICS ZeroMQ related core types
HELICS_ENABLE_TCP_CORE: [Default=ON] Enable the HELICS TCP related core types
HELICS_ENABLE_UDP_CORE: [Default=ON] Enable the HELICS UDP core type
HELICS_ENABLE_IPC_CORE: [Default=ON] Enable the HELICS interprocess shared memory related core types
HELICS_ENABLE_TEST_CORE: [Default=OFF] Enable the HELICS in process core type with some additional features for tests, required and enabled if the
HELICS_BUILD_TESTSoption is enabled
HELICS_ENABLE_INPROC_CORE: [Default=ON] Enable the HELICS in process core type, required if
HELICS_ENABLE_MPI_CORE: [Default=OFF] Enable the HELICS Message Passing Interface (MPI) related core types, most commonly used for High Performance Computing applications (HPC)
HELICS logging Options¶
HELICS_ENABLE_TRACE_LOGGING: [Default=ON] Enable trace level of logging inside HELICS, if this is turned off that capability is completely removed from HELICS
HELICS_ENABLE_DEBUG_LOGGING: [Default=ON] Enable debug levels of logging inside HELICS, if this is turned off that capability is completely removed from HELICS
Build configuration Options¶
Options effect the connection of libraries used in HELICS and how they are linked.
HELICS_DISABLE_BOOST: [Default=OFF] Completely turn off searching and inclusion of boost libraries. This will disable the IPC core, disable the webserver and few other features, possibly more in the future.
HELICS_DISABLE_WEBSERVER: [Default=OFF] Disable building the webserver part of the
helics_broker. The webserver requires boost 1.70 or higher and
HELICS_DISABLE_BOOSTwill take precedence.
HELICS_DISABLE_ASIO: [Default=OFF] Completely turn off inclusion of ASIO libraries. This will disable all TCP and UDP cores, disable real time mode for HELICS, and disable all timeout features for the Library so use with caution.
HELICS_ENABLE_SUBMODULE_UPDATE: [Default=ON] Enable CMake to automatically download the submodules and update them if necessary
HELICS_ENABLE_ERROR_ON_WARNING:[Default=OFF] Turns on Werror or equivalent, probably not useful for normal activity, There isn’t many warnings but left in to allow the possibility
HELICS_ENABLE_EXTRA_COMPILER_WARNINGS: [Default=ON] Turn on higher levels of warnings in the compilers, can be turned off if you didn’t need or want the warning checks.
STATIC_STANDARD_LIB: [Default=””] link the standard library as a static library for no additional C++ system dependencies (recognized values are
dynamic, anything else is treated the same as
HELICS_ENABLE_SWIG: [Default=OFF] Conditional option if
HELICS_BUILD_JAVA_INTERACEis selected and no other option that requires swig is used. This enables swig usage in cases where it would not otherwise be necessary.
HELICS_ENABLE_GIT_HOOKS: install a git hook to check clang format before a push
Boost_NO_BOOST_CMAKE: [Default=OFF] This is an option related to the Boost find module, but is occasionally needed if a specific version of boost is desired and there is a system copy of BoostConfig.cmake. So if an incorrect version of boost is being found even when
BOOST_ROOTis being specified this option might need to be set to
HELICS_BUILD_CONFIGURATION: A string containing a specialized build configuration if any. The only platform this is currently used on is for building on a Raspberry PI system, in which case this should be set to “PI”.