From 4bbc8305ba7bcc626cefb446b65ccd10ac2a2dc5 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Sun, 2 Apr 2023 22:44:08 +0200 Subject: [PATCH] Cosmetics in cmake - use ON/OFF instead of 1/0 - display all MC related options together - mark some crufy variables as advanced to hide them --- CMakeLists.txt | 51 ++++++++++++++++---------- src/smpi/internals/smpi_config.cpp | 4 +- teshsuite/smpi/MBI/CMakeLists.txt | 6 +-- tools/cmake/Modules/FindGraphviz.cmake | 4 +- tools/cmake/Modules/FindPAPI.cmake | 4 +- 5 files changed, 40 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cf029cc93f..ac691feed7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,7 +77,7 @@ if ((NOT DEFINED enable_smpi) OR enable_smpi) # configuration where it was saved as smpiff unset(CMAKE_Fortran_COMPILER) - SET(SMPI_FORTRAN 0) + SET(SMPI_FORTRAN OFF) if(enable_fortran) enable_language(Fortran OPTIONAL) endif() @@ -106,7 +106,7 @@ if ((NOT DEFINED enable_smpi) OR enable_smpi) ## Request debugging flags for Fortran too set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g") - set(SMPI_FORTRAN 1) + set(SMPI_FORTRAN ON) endif(CMAKE_Fortran_COMPILER) endif() @@ -195,21 +195,21 @@ include(CheckIncludeFiles) include(CheckLibraryExists) include(CheckSymbolExists) -set(HAVE_GRAPHVIZ 0) +set(HAVE_GRAPHVIZ OFF) if(minimal-bindings) message(STATUS "Don't even look for graphviz, as we build minimal binding libraries.") else() include(FindGraphviz) endif() -set(SIMGRID_HAVE_NS3 0) +set(SIMGRID_HAVE_NS3 OFF) if(enable_ns3) include(FindNS3) if (SIMGRID_HAVE_NS3) if (NOT NS3_VERSION EQUAL "3-dev" AND NS3_VERSION VERSION_LESS "3.28") message(FATAL_ERROR "SimGrid needs ns-3 in version 3.28 or higher. Please upgrade or disable that cmake option.") endif() - set(SIMGRID_HAVE_NS3 1) + set(SIMGRID_HAVE_NS3 ON) set(SIMGRID_DEP "${SIMGRID_DEP} ${NS3_LIBRARIES}") else() message(FATAL_ERROR "Cannot find ns-3. Please install it (apt-get install ns3 libns3-dev) or disable that cmake option") @@ -217,11 +217,11 @@ if(enable_ns3) endif() ### Check for Eigen library -set(SIMGRID_HAVE_EIGEN3 0) +set(SIMGRID_HAVE_EIGEN3 OFF) find_package (Eigen3 3.3 CONFIG HINTS ${EIGEN3_HINT}) if (Eigen3_FOUND) - set(SIMGRID_HAVE_EIGEN3 1) + set(SIMGRID_HAVE_EIGEN3 ON) message(STATUS "Found Eigen3: ${EIGEN3_INCLUDE_DIR}") include_directories(${EIGEN3_INCLUDE_DIR}) if ("3.3.4" VERSION_EQUAL EIGEN3_VERSION_STRING AND CMAKE_COMPILER_IS_GNUCC) @@ -231,6 +231,7 @@ if (Eigen3_FOUND) else() message(STATUS "Disabling model BMF because Eigen3 was not found. If it's installed, use EIGEN3_HINT to hint cmake about the location of Eigen3Config.cmake") endif() +mark_as_advanced(Eigen3_DIR) # Check for our JSON dependency set(SIMGRID_HAVE_JSON 0) @@ -246,14 +247,16 @@ if (nlohmann_json_FOUND) endif() message(STATUS "Found nlohmann_json: ${NLOHMANN_JSON_INCLUDE_DIR}") endif() +mark_as_advanced(nlohmann_json_DIR) -set(HAVE_PAPI 0) +set(HAVE_PAPI OFF) if(enable_smpi_papi) include(FindPAPI) if (NOT HAVE_PAPI) message(FATAL_ERROR "Cannot find PAPI. Please install it (apt-get install papi-tools libpapi-dev) or disable PAPI bindings.") endif() endif() +mark_as_advanced(PAPI_PREFIX) # But we do need the core of Boost # cmake before 3.13.1 does not know about stacktrace components. Fix it. @@ -291,10 +294,10 @@ set(_Boost_STACKTRACE_ADDR2LINE_HEADERS "boost/stacktrace.hpp") if(Boost_CONTEXT_FOUND) message (STATUS " context: found. Activating Boost contexts.") - set(HAVE_BOOST_CONTEXTS 1) + set(HAVE_BOOST_CONTEXTS ON) else() message (STATUS " context: MISSING. Install libboost-context-dev for this optional feature.") - set(HAVE_BOOST_CONTEXTS 0) + set(HAVE_BOOST_CONTEXTS OFF) endif() endif() else() @@ -310,6 +313,10 @@ set(_Boost_STACKTRACE_ADDR2LINE_HEADERS "boost/stacktrace.hpp") endif() endif() endif() +mark_as_advanced(Boost_CONTEXT_LIBRARY_RELEASE) +mark_as_advanced(Boost_INCLUDE_DIR) +mark_as_advanced(Boost_STACKTRACE_ADDR2LINE_LIB) +mark_as_advanced(Boost_STACKTRACE_BACKTRACE_LIB) # Checks for header libraries functions. CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_POSIX_GETTIME) @@ -361,8 +368,8 @@ else() SET(SIMGRID_HAVE_MALLOCATOR 0) endif() -SET(SIMGRID_HAVE_MC 0) -SET(SIMGRID_HAVE_STATEFUL_MC 0) +SET(SIMGRID_HAVE_MC OFF) +SET(SIMGRID_HAVE_STATEFUL_MC OFF) SET(HAVE_MMALLOC 0) find_package(Libevent) @@ -370,10 +377,12 @@ if(Libevent_FOUND) message(STATUS "Found libevent. The stateless model-checking can be enabled.") include_directories(${LIBEVENT_INCLUDE_DIR}) set(SIMGRID_DEP "${SIMGRID_DEP} ${LIBEVENT_LIBRARIES}") - SET(SIMGRID_HAVE_MC 1) + SET(SIMGRID_HAVE_MC ON) else() message(STATUS "libevent not found. Please install libevent-dev to enable the SimGrid model checker.") endif() +mark_as_advanced(LIBEVENT_LIBRARY) +mark_as_advanced(LIBEVENT_THREADS_LIBRARY) if(enable_model-checking) include(FindLibunwind) @@ -381,7 +390,7 @@ if(enable_model-checking) find_package(Libelf) if(HAVE_MMAP AND HAVE_LIBUNWIND AND Libdw_FOUND AND Libelf_FOUND AND Libevent_FOUND) message(STATUS "All dependencies found. The stateful model-checking can be enabled.") - SET(SIMGRID_HAVE_STATEFUL_MC 1) + SET(SIMGRID_HAVE_STATEFUL_MC ON) SET(HAVE_MMALLOC 1) SET(SIMGRID_DEP "${SIMGRID_DEP} ${LIBUNWIND_LIBRARIES} ${LIBELF_LIBRARIES} ${LIBDW_LIBRARIES}") include_directories(${LIBDW_INCLUDE_DIR} ${LIBELF_INCLUDE_DIR}) @@ -395,15 +404,15 @@ endif() mark_as_advanced(PATH_LIBDW_H) mark_as_advanced(PATH_LIBDW_LIB) -if (SIMGRID_HAVE_MC AND enable_ns3) +if (SIMGRID_HAVE_STATEFUL_MC AND enable_ns3) message(WARNING "Activating both model-checking and ns-3 bindings is considered experimental.") endif() if(enable_smpi) - SET(HAVE_SMPI 1) - SET(HAVE_PRIVATIZATION 1) + SET(HAVE_SMPI ON) + SET(HAVE_PRIVATIZATION ON) else() - SET(HAVE_SMPI 0) + SET(HAVE_SMPI OFF) endif() #-------------------------------------------------------------------------------------------------- @@ -935,10 +944,12 @@ message(" Privatization .............: ${HAVE_PRIVATIZATION}") message(" PAPI support ..............: ${HAVE_PAPI}") message(" Compile Boost.Context support: ${HAVE_BOOST_CONTEXTS}") message("") +message(" Model checking ..............: ${SIMGRID_HAVE_MC}") +message(" Stateful model checking ...: ${SIMGRID_HAVE_STATEFUL_MC}") +message(" MBI testsuite .............: ${enable_smpi_MBI_testsuite}") +message("") message(" Maintainer mode .............: ${enable_maintainer_mode}") message(" Documentation ...............: ${enable_documentation}") -message(" Stateless model checking ....: ${SIMGRID_HAVE_MC}") -message(" Stateful model checking .....: ${SIMGRID_HAVE_STATEFUL_MC}") message(" Graphviz mode ...............: ${HAVE_GRAPHVIZ}") message(" Mallocators .................: ${enable_mallocators}") message("") diff --git a/src/smpi/internals/smpi_config.cpp b/src/smpi/internals/smpi_config.cpp index 84f6edce68..513694be8f 100644 --- a/src/smpi/internals/smpi_config.cpp +++ b/src/smpi/internals/smpi_config.cpp @@ -255,9 +255,9 @@ void smpi_init_options_internal(bool called_by_smpi_main) simgrid::config::declare_flag( "smpi/privatization", "How we should privatize global variable at runtime (no, yes, mmap, dlopen).", default_privatization, [](const std::string& smpi_privatize_option) { - if (smpi_privatize_option == "no" || smpi_privatize_option == "0") + if (smpi_privatize_option == "no" || smpi_privatize_option == "0" || smpi_privatize_option == "OFF") _smpi_cfg_privatization = SmpiPrivStrategies::NONE; - else if (smpi_privatize_option == "yes" || smpi_privatize_option == "1") + else if (smpi_privatize_option == "yes" || smpi_privatize_option == "1" || smpi_privatize_option == "ON") _smpi_cfg_privatization = SmpiPrivStrategies::DEFAULT; else if (smpi_privatize_option == "mmap") _smpi_cfg_privatization = SmpiPrivStrategies::MMAP; diff --git a/teshsuite/smpi/MBI/CMakeLists.txt b/teshsuite/smpi/MBI/CMakeLists.txt index a07c97c015..35613f1913 100644 --- a/teshsuite/smpi/MBI/CMakeLists.txt +++ b/teshsuite/smpi/MBI/CMakeLists.txt @@ -9,10 +9,10 @@ file(GLOB generator_scripts *Generator.py) if (enable_smpi_MBI_testsuite) if (NOT enable_smpi) - message(FATAL_ERROR "MBI test suite cannot be enabled without SMPI. Please change either setting.") + message(FATAL_ERROR "The MBI test suite cannot be enabled without SMPI. Please change either setting.") endif() - if (NOT enable_model-checking) - message(FATAL_ERROR "MBI test suite cannot be enabled without the Mc SimGrid model-checker. Please change either setting.") + if (NOT SIMGRID_HAVE_MC) + message(FATAL_ERROR "The MBI test suite cannot be enabled without the model-checker. Please change either setting.") endif() message(STATUS "Generating the MBI test cases") diff --git a/tools/cmake/Modules/FindGraphviz.cmake b/tools/cmake/Modules/FindGraphviz.cmake index 57f6771ea8..860a65e290 100644 --- a/tools/cmake/Modules/FindGraphviz.cmake +++ b/tools/cmake/Modules/FindGraphviz.cmake @@ -25,9 +25,9 @@ if(HAVE_CDT_LIB AND HAVE_CGRAPH_LIB AND HAVE_CGRAPH_H) include_directories(${file_graphviz_h} ${file_graphviz_h}/graphviz) link_directories(${lib_graphviz}) - set(HAVE_GRAPHVIZ "1") + set(HAVE_GRAPHVIZ ON) else() - set(HAVE_GRAPHVIZ "0") + set(HAVE_GRAPHVIZ OFF) endif() mark_as_advanced(HAVE_GRAPHVIZ) diff --git a/tools/cmake/Modules/FindPAPI.cmake b/tools/cmake/Modules/FindPAPI.cmake index 8427cfed56..28b2b3519b 100644 --- a/tools/cmake/Modules/FindPAPI.cmake +++ b/tools/cmake/Modules/FindPAPI.cmake @@ -17,7 +17,7 @@ # PAPI_LIBRARY The PAPI library # PAPI_INCLUDE_DIRS The location of PAPI headers -set(HAVE_PAPI 0) +set(HAVE_PAPI OFF) set(PAPI_HINT ${papi_path} CACHE PATH "Path to search for PAPI headers and library") find_path(PAPI_PREFIX @@ -55,7 +55,7 @@ endif() if (PAPI_LIBRARY) if(PAPI_INCLUDE_DIRS) - set(HAVE_PAPI 1) + set(HAVE_PAPI ON) mark_as_advanced(HAVE_PAPI) endif() endif() -- 2.20.1