From ac68a2e8c6746a0c5482fce5d4ab1de0f56cb1b5 Mon Sep 17 00:00:00 2001 From: Arseniy Obolenskiy Date: Tue, 24 Jun 2025 07:57:07 +0200 Subject: [PATCH] Apply cmake format remarks --- cmake/configure.cmake | 122 ++++++++++++++--------------- cmake/functions.cmake | 150 +++++++++++++++++------------------- cmake/gtest.cmake | 45 ++++++----- cmake/json.cmake | 37 ++++----- cmake/libenvpp.cmake | 51 ++++++------ cmake/modes.cmake | 39 +++++----- cmake/mpi.cmake | 12 +-- cmake/onetbb.cmake | 65 ++++++++-------- cmake/openmp.cmake | 19 ++--- cmake/sanitizers.cmake | 9 ++- cmake/scoreboard.cmake | 7 +- cmake/sphinx.cmake | 10 +-- docs/CMakeLists.txt | 32 ++++---- modules/CMakeLists.txt | 2 +- modules/core/CMakeLists.txt | 60 ++++++++------- scoreboard/CMakeLists.txt | 27 +++---- tasks/CMakeLists.txt | 12 ++- 17 files changed, 360 insertions(+), 339 deletions(-) diff --git a/cmake/configure.cmake b/cmake/configure.cmake index 71b56986b..802010d6c 100644 --- a/cmake/configure.cmake +++ b/cmake/configure.cmake @@ -1,89 +1,91 @@ if(MSVC) - option(gtest_force_shared_crt "" TRUE) + option(gtest_force_shared_crt "" TRUE) endif(MSVC) -if (NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Release") +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release") endif(NOT CMAKE_BUILD_TYPE) -if (MSVC) - add_compile_options("/utf-8") +if(MSVC) + add_compile_options("/utf-8") endif() -set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/arch" ) -set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib" ) -set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin" ) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/arch") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin") -set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/arch" ) -set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib" ) -set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin" ) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/arch") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin") -set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/arch" ) -set( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" ) -set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" ) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/arch") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") -set( CMAKE_CXX_STANDARD 23 ) +set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_COMPILE_WARNING_AS_ERROR ON) -if (USE_COVERAGE) - set(CMAKE_INSTALL_RPATH "${CMAKE_BINARY_DIR}/ppc_onetbb/install/lib") +if(USE_COVERAGE) + set(CMAKE_INSTALL_RPATH "${CMAKE_BINARY_DIR}/ppc_onetbb/install/lib") else() - set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") -endif () + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +endif() set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON) set(CMAKE_SKIP_BUILD_RPATH OFF) -if( UNIX ) - set(COMMON_COMPILER_FLAGS - "${COMMON_COMPILER_FLAGS} \ - -Wall -Wextra \ - -Wno-unused-parameter \ - -Wno-cast-function-type \ +if(UNIX) + set(COMMON_COMPILER_FLAGS + "${COMMON_COMPILER_FLAGS} \ + -Wall -Wextra \ + -Wno-unused-parameter \ + -Wno-cast-function-type \ -Wsign-compare") - if (NOT APPLE) - set(COMMON_COMPILER_FLAGS - "${COMMON_COMPILER_FLAGS} \ - -Wpedantic \ - -Wpointer-arith \ - -Wcast-align \ - -Wwrite-strings \ - -Wswitch-enum \ - -Wnull-dereference \ - -Wswitch-enum \ - -Wformat=2 \ - -Wmissing-declarations \ + if(NOT APPLE) + set(COMMON_COMPILER_FLAGS + "${COMMON_COMPILER_FLAGS} \ + -Wpedantic \ + -Wpointer-arith \ + -Wcast-align \ + -Wwrite-strings \ + -Wswitch-enum \ + -Wnull-dereference \ + -Wswitch-enum \ + -Wformat=2 \ + -Wmissing-declarations \ -Wno-c11-extensions") - endif (NOT APPLE) - set(CMAKE_C_FLAGS - "${CMAKE_C_FLAGS} \ - -Wold-style-definition \ + endif(NOT APPLE) + set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} \ + -Wold-style-definition \ -Wmissing-prototypes") - if ("${ENABLE_ADDRESS_SANITIZER}" OR "${ENABLE_UB_SANITIZER}" OR "${ENABLE_LEAK_SANITIZER}") - set (COMMON_COMPILER_FLAGS "${COMMON_COMPILER_FLAGS} -Wno-cast-align") - endif() + if("${ENABLE_ADDRESS_SANITIZER}" + OR "${ENABLE_UB_SANITIZER}" + OR "${ENABLE_LEAK_SANITIZER}") + set(COMMON_COMPILER_FLAGS "${COMMON_COMPILER_FLAGS} -Wno-cast-align") + endif() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_COMPILER_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILER_FLAGS}") - if (USE_COVERAGE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") - endif(USE_COVERAGE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_COMPILER_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILER_FLAGS}") + if(USE_COVERAGE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") + endif(USE_COVERAGE) endif() -if( MSVC ) - set(COMMON_FLAGS "/W4 /wd4267 /wd4244") - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${COMMON_FLAGS}" ) - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_FLAGS}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}" ) - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_FLAGS}" ) - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS}" ) -endif( MSVC ) +if(MSVC) + set(COMMON_FLAGS "/W4 /wd4267 /wd4244") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${COMMON_FLAGS}") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_FLAGS}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_FLAGS}") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS}") +endif(MSVC) -find_package( Threads REQUIRED ) +find_package(Threads REQUIRED) diff --git a/cmake/functions.cmake b/cmake/functions.cmake index e1cfcf669..37c4174ca 100644 --- a/cmake/functions.cmake +++ b/cmake/functions.cmake @@ -1,105 +1,97 @@ # ——— Helper function to add & register tests ————————————————————————— function(ppc_add_test test_name test_src USE_FLAG) - if(${USE_FLAG}) - add_executable(${test_name} "${PROJECT_SOURCE_DIR}/${test_src}") - enable_testing() - add_test(NAME ${test_name} COMMAND ${test_name}) - install(TARGETS ${test_name} RUNTIME DESTINATION bin) - endif() + if(${USE_FLAG}) + add_executable(${test_name} "${PROJECT_SOURCE_DIR}/${test_src}") + enable_testing() + add_test(NAME ${test_name} COMMAND ${test_name}) + install(TARGETS ${test_name} RUNTIME DESTINATION bin) + endif() endfunction() # Function to configure tests function(add_tests test_flag exec_target subdir) - if(${test_flag}) - # Gather all source files under tests/ - file(GLOB_RECURSE src_files - "${TEST_DIR}/${subdir}/*.cpp" - "${TEST_DIR}/${subdir}/*.cxx" - "${TEST_DIR}/${subdir}/*.cc" - ) - target_sources(${exec_target} PRIVATE ${src_files}) - list(APPEND TEST_EXECUTABLES ${exec_target}) - set(TEST_EXECUTABLES "${TEST_EXECUTABLES}" PARENT_SCOPE) - endif() + if(${test_flag}) + # Gather all source files under tests/ + file(GLOB_RECURSE src_files "${TEST_DIR}/${subdir}/*.cpp" + "${TEST_DIR}/${subdir}/*.cxx" "${TEST_DIR}/${subdir}/*.cc") + target_sources(${exec_target} PRIVATE ${src_files}) + list(APPEND TEST_EXECUTABLES ${exec_target}) + set(TEST_EXECUTABLES + "${TEST_EXECUTABLES}" + PARENT_SCOPE) + endif() endfunction() # ============================================================================ -# Function: setup_implementation -# - NAME: implementation sub‐directory name (e.g. “mpi”) -# - PROJ_NAME: project base name -# - BASE_DIR: root source directory -# - TESTS: list of test executables to link against +# Function: setup_implementation - NAME: implementation sub‐directory name +# (e.g. “mpi”) - PROJ_NAME: project base name - BASE_DIR: root source +# directory - TESTS: list of test executables to link against # ============================================================================ function(setup_implementation) - # parse named args: NAME, PROJ_NAME, BASE_DIR; multi‐value: TESTS - cmake_parse_arguments( - SETUP - "" # no plain options - "NAME;PROJ_NAME;BASE_DIR" - "TESTS" - ${ARGN} - ) + # parse named args: NAME, PROJ_NAME, BASE_DIR; multi‐value: TESTS + cmake_parse_arguments(SETUP "" # no plain options + "NAME;PROJ_NAME;BASE_DIR" "TESTS" ${ARGN}) - # skip if impl dir doesn't exist - set(IMP_DIR "${SETUP_BASE_DIR}/${SETUP_NAME}") - if(NOT EXISTS "${IMP_DIR}") - return() - endif() - message(STATUS " -- ${SETUP_NAME}") + # skip if impl dir doesn't exist + set(IMP_DIR "${SETUP_BASE_DIR}/${SETUP_NAME}") + if(NOT EXISTS "${IMP_DIR}") + return() + endif() + message(STATUS " -- ${SETUP_NAME}") - # collect sources - file(GLOB_RECURSE CPP_SOURCES "${IMP_DIR}/src/*.cpp") - file(GLOB_RECURSE ALL_SOURCES - "${IMP_DIR}/include/*.h" - "${IMP_DIR}/include/*.hpp" - "${IMP_DIR}/src/*.cpp" - ) + # collect sources + file(GLOB_RECURSE CPP_SOURCES "${IMP_DIR}/src/*.cpp") + file(GLOB_RECURSE ALL_SOURCES "${IMP_DIR}/include/*.h" + "${IMP_DIR}/include/*.hpp" "${IMP_DIR}/src/*.cpp") - # create library (STATIC if .cpp exist, otherwise INTERFACE) - set(LIB_NAME "${SETUP_PROJ_NAME}_${SETUP_NAME}") - if(CPP_SOURCES) - add_library(${LIB_NAME} STATIC ${ALL_SOURCES}) - else() - add_library(${LIB_NAME} INTERFACE ${ALL_SOURCES}) - endif() + # create library (STATIC if .cpp exist, otherwise INTERFACE) + set(LIB_NAME "${SETUP_PROJ_NAME}_${SETUP_NAME}") + if(CPP_SOURCES) + add_library(${LIB_NAME} STATIC ${ALL_SOURCES}) + else() + add_library(${LIB_NAME} INTERFACE ${ALL_SOURCES}) + endif() - # link core module - target_link_libraries(${LIB_NAME} PUBLIC core_module_lib) + # link core module + target_link_libraries(${LIB_NAME} PUBLIC core_module_lib) - # and link into each enabled test executable - foreach(test_exec ${SETUP_TESTS}) - target_link_libraries(${test_exec} PUBLIC ${LIB_NAME}) - endforeach() + # and link into each enabled test executable + foreach(test_exec ${SETUP_TESTS}) + target_link_libraries(${test_exec} PUBLIC ${LIB_NAME}) + endforeach() endfunction() # Function to configure each subproject function(ppc_configure_subproject SUBDIR) - # Module-specific compile-time definitions - add_compile_definitions( - PPC_SETTINGS_${SUBDIR}="${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/settings.json" - PPC_ID_${SUBDIR}="${SUBDIR}" - ) + # Module-specific compile-time definitions + add_compile_definitions( + PPC_SETTINGS_${SUBDIR}="${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/settings.json" + PPC_ID_${SUBDIR}="${SUBDIR}") - # Switch project context to the subproject - project(${SUBDIR}) + # Switch project context to the subproject + project(${SUBDIR}) - # Directory with tests and list of test executables (populated by setup_implementation) - set(TEST_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/tests") - set(TEST_EXECUTABLES "") + # Directory with tests and list of test executables (populated by + # setup_implementation) + set(TEST_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/tests") + set(TEST_EXECUTABLES "") - # Register functional and performance test runners - add_tests(USE_FUNC_TESTS ${FUNC_TEST_EXEC} functional) - add_tests(USE_PERF_TESTS ${PERF_TEST_EXEC} performance) + # Register functional and performance test runners + add_tests(USE_FUNC_TESTS ${FUNC_TEST_EXEC} functional) + add_tests(USE_PERF_TESTS ${PERF_TEST_EXEC} performance) - message(STATUS "${SUBDIR}") + message(STATUS "${SUBDIR}") - # List of implementations to configure - foreach(IMPL IN LISTS IMPLEMENTATIONS) - setup_implementation( - NAME ${IMPL} - PROJ_NAME ${SUBDIR} - TESTS "${TEST_EXECUTABLES}" - BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}" - ) - endforeach() + # List of implementations to configure + foreach(IMPL IN LISTS IMPLEMENTATIONS) + setup_implementation( + NAME + ${IMPL} + PROJ_NAME + ${SUBDIR} + TESTS + "${TEST_EXECUTABLES}" + BASE_DIR + "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}") + endforeach() endfunction() diff --git a/cmake/gtest.cmake b/cmake/gtest.cmake index f33b1e6b8..9f3884641 100644 --- a/cmake/gtest.cmake +++ b/cmake/gtest.cmake @@ -1,24 +1,27 @@ include_directories(${CMAKE_SOURCE_DIR}/3rdparty/googletest/googletest/include) include(ExternalProject) -ExternalProject_Add(ppc_googletest - SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/googletest" - PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest" - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" - INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install" - - CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} - -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} - -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} - -DCMAKE_CXX_STANDARD_REQUIRED=ON - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_C_FLAGS=-w - -DCMAKE_CXX_FLAGS=-w - $<$:-Dgtest_force_shared_crt=ON> - - BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --config ${CMAKE_BUILD_TYPE} --parallel - INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install" -) +ExternalProject_Add( + ppc_googletest + SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/googletest" + PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" + INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install" + CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} + -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} + -DCMAKE_CXX_STANDARD_REQUIRED=ON + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_FLAGS=-w + -DCMAKE_CXX_FLAGS=-w + $<$:-Dgtest_force_shared_crt=ON> + BUILD_COMMAND + "${CMAKE_COMMAND}" --build + "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --config + ${CMAKE_BUILD_TYPE} --parallel + INSTALL_COMMAND + "${CMAKE_COMMAND}" --install + "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --prefix + "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install") diff --git a/cmake/json.cmake b/cmake/json.cmake index 97b29703b..0c8bdd852 100644 --- a/cmake/json.cmake +++ b/cmake/json.cmake @@ -2,21 +2,22 @@ include_directories(${CMAKE_SOURCE_DIR}/3rdparty/json/include) include(ExternalProject) -ExternalProject_Add(ppc_json - SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/json" - PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_json" - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/build" - INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/install" - - CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} - -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} - -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} - -DCMAKE_CXX_STANDARD_REQUIRED=ON - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - - BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/build" --config ${CMAKE_BUILD_TYPE} --parallel - INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/install" -) +ExternalProject_Add( + ppc_json + SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/json" + PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_json" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/build" + INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/install" + CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} + -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} + -DCMAKE_CXX_STANDARD_REQUIRED=ON + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + BUILD_COMMAND + "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/build" + --config ${CMAKE_BUILD_TYPE} --parallel + INSTALL_COMMAND + "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/build" + --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_json/install") diff --git a/cmake/libenvpp.cmake b/cmake/libenvpp.cmake index f4d73e9b6..1c4ccb6e6 100644 --- a/cmake/libenvpp.cmake +++ b/cmake/libenvpp.cmake @@ -1,39 +1,44 @@ include_directories(${CMAKE_SOURCE_DIR}/3rdparty/libenvpp/include) -include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/3rdparty/libenvpp/external/fmt/include) +include_directories(SYSTEM + ${CMAKE_SOURCE_DIR}/3rdparty/libenvpp/external/fmt/include) if(WIN32) - set(PPC_FMT_FLAGS "/EHsc /DFMT_CONSTEVAL=inline") + set(PPC_FMT_FLAGS "/EHsc /DFMT_CONSTEVAL=inline") else() - set(PPC_FMT_FLAGS "-fexceptions -DFMT_CONSTEVAL=inline") + set(PPC_FMT_FLAGS "-fexceptions -DFMT_CONSTEVAL=inline") endif() include(ExternalProject) -ExternalProject_Add(ppc_libenvpp - SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/libenvpp" - PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp" - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/build" - INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/install" - CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} - -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} - -DCMAKE_CXX_STANDARD_REQUIRED=ON - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_CXX_FLAGS=${PPC_FMT_FLAGS} - BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/build" --config ${CMAKE_BUILD_TYPE} --parallel - INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/install" -) +ExternalProject_Add( + ppc_libenvpp + SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/libenvpp" + PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/build" + INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/install" + CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} + -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} + -DCMAKE_CXX_STANDARD_REQUIRED=ON + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_CXX_FLAGS=${PPC_FMT_FLAGS} + BUILD_COMMAND + "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/build" + --config ${CMAKE_BUILD_TYPE} --parallel + INSTALL_COMMAND + "${CMAKE_COMMAND}" --install + "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/build" --prefix + "${CMAKE_CURRENT_BINARY_DIR}/ppc_libenvpp/install") string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower) if(cmake_build_type_lower STREQUAL "debug") - set(PPC_FMT_LIB_NAME fmtd) + set(PPC_FMT_LIB_NAME fmtd) else() - set(PPC_FMT_LIB_NAME fmt) + set(PPC_FMT_LIB_NAME fmt) endif() if(WIN32) - set(PPC_ENVPP_LIB_NAME libenvpp) + set(PPC_ENVPP_LIB_NAME libenvpp) else() - set(PPC_ENVPP_LIB_NAME envpp) + set(PPC_ENVPP_LIB_NAME envpp) endif() diff --git a/cmake/modes.cmake b/cmake/modes.cmake index 003dfe2a3..946b171fa 100644 --- a/cmake/modes.cmake +++ b/cmake/modes.cmake @@ -1,24 +1,27 @@ add_compile_definitions(PPC_PATH_TO_PROJECT="${CMAKE_CURRENT_SOURCE_DIR}") -MACRO(SUBDIRLIST result curdir) - FILE(GLOB children RELATIVE ${curdir} ${curdir}/*) - SET(dirlist "") - FOREACH(child ${children}) - IF(IS_DIRECTORY ${curdir}/${child}) - LIST(APPEND dirlist ${child}) - ENDIF() - ENDFOREACH() - SET(${result} ${dirlist}) -ENDMACRO() +macro(SUBDIRLIST result curdir) + file( + GLOB children + RELATIVE ${curdir} + ${curdir}/*) + set(dirlist "") + foreach(child ${children}) + if(IS_DIRECTORY ${curdir}/${child}) + list(APPEND dirlist ${child}) + endif() + endforeach() + set(${result} ${dirlist}) +endmacro() option(USE_FUNC_TESTS "Enable functional tests" ON) -if( USE_FUNC_TESTS ) - message( STATUS "Enable functional tests" ) - add_compile_definitions(USE_FUNC_TESTS) -endif( USE_FUNC_TESTS ) +if(USE_FUNC_TESTS) + message(STATUS "Enable functional tests") + add_compile_definitions(USE_FUNC_TESTS) +endif(USE_FUNC_TESTS) option(USE_PERF_TESTS "Enable performance tests" ON) -if( USE_PERF_TESTS ) - message( STATUS "Enable performance tests" ) - add_compile_definitions(USE_PERF_TESTS) -endif( USE_PERF_TESTS ) +if(USE_PERF_TESTS) + message(STATUS "Enable performance tests") + add_compile_definitions(USE_PERF_TESTS) +endif(USE_PERF_TESTS) diff --git a/cmake/mpi.cmake b/cmake/mpi.cmake index b9917e539..6683e6e4f 100644 --- a/cmake/mpi.cmake +++ b/cmake/mpi.cmake @@ -1,6 +1,6 @@ -find_package( MPI REQUIRED ) -if( MPI_FOUND ) - include_directories( ${MPI_INCLUDE_PATH} ) -else( MPI_FOUND ) - message(FATAL_ERROR "MPI NOT FOUND") -endif( MPI_FOUND ) +find_package(MPI REQUIRED) +if(MPI_FOUND) + include_directories(${MPI_INCLUDE_PATH}) +else(MPI_FOUND) + message(FATAL_ERROR "MPI NOT FOUND") +endif(MPI_FOUND) diff --git a/cmake/onetbb.cmake b/cmake/onetbb.cmake index aecf7840c..e4f2daa7b 100644 --- a/cmake/onetbb.cmake +++ b/cmake/onetbb.cmake @@ -3,45 +3,44 @@ include(ExternalProject) include_directories("${CMAKE_SOURCE_DIR}/3rdparty/onetbb/include") if(WIN32) - set(ppc_onetbb_TEST_COMMAND "${CMAKE_COMMAND}" -E copy_directory - "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install/bin" - "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" - ) + set(ppc_onetbb_TEST_COMMAND + "${CMAKE_COMMAND}" -E copy_directory + "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install/bin" + "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") else() - set(ppc_onetbb_TEST_COMMAND "") + set(ppc_onetbb_TEST_COMMAND "") endif() -ExternalProject_Add(ppc_onetbb - SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/onetbb" - PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb" - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" - INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install" +ExternalProject_Add( + ppc_onetbb + SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/onetbb" + PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" + INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install" + CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} + -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} + -DCMAKE_C_FLAGS=-w + -DCMAKE_CXX_FLAGS=-w + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} + -DCMAKE_CXX_STANDARD_REQUIRED=ON + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DTBB_TEST=OFF + BUILD_COMMAND + "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" + --config ${CMAKE_BUILD_TYPE} --parallel + INSTALL_COMMAND + "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" + --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install" + TEST_COMMAND ${ppc_onetbb_TEST_COMMAND}) - CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} - -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} - -DCMAKE_C_FLAGS=-w - -DCMAKE_CXX_FLAGS=-w - -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} - -DCMAKE_CXX_STANDARD_REQUIRED=ON - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DTBB_TEST=OFF - - BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" --config ${CMAKE_BUILD_TYPE} --parallel - INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install" - TEST_COMMAND ${ppc_onetbb_TEST_COMMAND} -) - -install( - DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install/" - DESTINATION "${CMAKE_INSTALL_PREFIX}" -) +install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install/" + DESTINATION "${CMAKE_INSTALL_PREFIX}") string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower) if(cmake_build_type_lower STREQUAL "debug") - set(PPC_TBB_LIB_NAME tbb_debug) + set(PPC_TBB_LIB_NAME tbb_debug) else() - set(PPC_TBB_LIB_NAME tbb) + set(PPC_TBB_LIB_NAME tbb) endif() diff --git a/cmake/openmp.cmake b/cmake/openmp.cmake index e09d04312..c2e2725ab 100644 --- a/cmake/openmp.cmake +++ b/cmake/openmp.cmake @@ -1,9 +1,10 @@ -find_package( OpenMP ) -if( OpenMP_FOUND ) - include_directories( ${OpenMP_C_INCLUDE_DIRS} ${OpenMP_CXX_INCLUDE_DIRS} ) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") -else( OpenMP_FOUND ) - message(FATAL_ERROR "OpenMP NOT FOUND") -endif( OpenMP_FOUND ) +find_package(OpenMP) +if(OpenMP_FOUND) + include_directories(${OpenMP_C_INCLUDE_DIRS} ${OpenMP_CXX_INCLUDE_DIRS}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + set(CMAKE_EXE_LINKER_FLAGS + "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") +else(OpenMP_FOUND) + message(FATAL_ERROR "OpenMP NOT FOUND") +endif(OpenMP_FOUND) diff --git a/cmake/sanitizers.cmake b/cmake/sanitizers.cmake index c7e8ba133..d589a0800 100644 --- a/cmake/sanitizers.cmake +++ b/cmake/sanitizers.cmake @@ -1,16 +1,17 @@ option(ENABLE_ADDRESS_SANITIZER OFF) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") - if (ENABLE_ADDRESS_SANITIZER) + if(ENABLE_ADDRESS_SANITIZER) add_compile_options(-fsanitize=address) add_link_options(-fsanitize=address) message(STATUS "Enabled address sanitizer") endif() - if (ENABLE_UB_SANITIZER) - add_compile_options(-fsanitize=undefined -fno-sanitize=signed-integer-overflow) + if(ENABLE_UB_SANITIZER) + add_compile_options(-fsanitize=undefined + -fno-sanitize=signed-integer-overflow) add_link_options(-fsanitize=undefined -fno-sanitize=signed-integer-overflow) message(STATUS "Enabled UB sanitizer") endif() - if (ENABLE_LEAK_SANITIZER) + if(ENABLE_LEAK_SANITIZER) add_compile_options(-fsanitize=leak) add_link_options(-fsanitize=leak) message(STATUS "Enabled leak sanitizer") diff --git a/cmake/scoreboard.cmake b/cmake/scoreboard.cmake index 99f5791d0..a9f3dc3d8 100644 --- a/cmake/scoreboard.cmake +++ b/cmake/scoreboard.cmake @@ -1,5 +1,4 @@ option(USE_SCOREBOARD OFF) -if( USE_SCOREBOARD ) - find_package(Python REQUIRED - COMPONENTS Interpreter) -endif( USE_SCOREBOARD ) +if(USE_SCOREBOARD) + find_package(Python REQUIRED COMPONENTS Interpreter) +endif(USE_SCOREBOARD) diff --git a/cmake/sphinx.cmake b/cmake/sphinx.cmake index 65153d7a3..a94b11a42 100644 --- a/cmake/sphinx.cmake +++ b/cmake/sphinx.cmake @@ -1,6 +1,6 @@ option(USE_DOCS OFF) -if( USE_DOCS ) - set(SPHINXBUILD "sphinx-build") - set(SPHINXINTL "sphinx-intl") - set(SPHINXOPTS "-W" "--keep-going" "-n") -endif( USE_DOCS ) +if(USE_DOCS) + set(SPHINXBUILD "sphinx-build") + set(SPHINXINTL "sphinx-intl") + set(SPHINXOPTS "-W" "--keep-going" "-n") +endif(USE_DOCS) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 5945566e6..727026277 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,4 +1,4 @@ -if (NOT USE_DOCS) +if(NOT USE_DOCS) return() endif() @@ -6,32 +6,34 @@ set(SOURCEDIR "${CMAKE_CURRENT_SOURCE_DIR}") set(BUILDDIR "${CMAKE_CURRENT_BINARY_DIR}/_build/html") set(GETTEXTDIR "${CMAKE_CURRENT_BINARY_DIR}/_build/gettext") -add_custom_target(docs_help +add_custom_target( + docs_help COMMAND ${SPHINXBUILD} -M help "${SOURCEDIR}" "${BUILDDIR}/en" ${SPHINXOPTS} WORKING_DIRECTORY "${SOURCEDIR}" - COMMENT "Displaying Sphinx Makefile help" -) + COMMENT "Displaying Sphinx Makefile help") # 'gettext' target: generate gettext catalogs. -add_custom_target(docs_gettext +add_custom_target( + docs_gettext COMMAND ${SPHINXBUILD} -b gettext "${SOURCEDIR}" "${GETTEXTDIR}" ${SPHINXOPTS} WORKING_DIRECTORY "${SOURCEDIR}" - COMMENT "Generating gettext output" -) + COMMENT "Generating gettext output") # 'update' target: update translations for the specified languages. -add_custom_target(docs_update +add_custom_target( + docs_update COMMAND ${SPHINXINTL} update -p "${GETTEXTDIR}" -l en -l ru WORKING_DIRECTORY "${SOURCEDIR}" - COMMENT "Updating Sphinx translations" -) + COMMENT "Updating Sphinx translations") # 'html' target: build the HTML documentation in both English and Russian. -add_custom_target(docs_html +add_custom_target( + docs_html # Build English documentation. - COMMAND ${SPHINXBUILD} -b html -D language=en "${SOURCEDIR}" "${BUILDDIR}/en" ${SPHINXOPTS} + COMMAND ${SPHINXBUILD} -b html -D language=en "${SOURCEDIR}" "${BUILDDIR}/en" + ${SPHINXOPTS} # Build Russian documentation. - COMMAND ${SPHINXBUILD} -b html -D language=ru "${SOURCEDIR}" "${BUILDDIR}/ru" ${SPHINXOPTS} + COMMAND ${SPHINXBUILD} -b html -D language=ru "${SOURCEDIR}" "${BUILDDIR}/ru" + ${SPHINXOPTS} WORKING_DIRECTORY "${SOURCEDIR}" - COMMENT "Building HTML documentation for English and Russian" -) + COMMENT "Building HTML documentation for English and Russian") diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index d745c11c4..34e8d7f4e 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -1,6 +1,6 @@ message(STATUS "Modules") -SUBDIRLIST(subdirs ${CMAKE_CURRENT_SOURCE_DIR}) +subdirlist(subdirs ${CMAKE_CURRENT_SOURCE_DIR}) foreach(subd ${subdirs}) add_subdirectory(${subd}) diff --git a/modules/core/CMakeLists.txt b/modules/core/CMakeLists.txt index 26d597946..de8ae2c29 100644 --- a/modules/core/CMakeLists.txt +++ b/modules/core/CMakeLists.txt @@ -1,10 +1,10 @@ get_filename_component(MODULE_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME) -message(STATUS "${MODULE_NAME} tasks") +message(STATUS "${MODULE_NAME} tasks") set(exec_func_tests "${MODULE_NAME}_func_tests") -set(exec_func_lib "${MODULE_NAME}_module_lib") -set(project_suffix "_${MODULE_NAME}") +set(exec_func_lib "${MODULE_NAME}_module_lib") +set(project_suffix "_${MODULE_NAME}") -SUBDIRLIST(subdirs ${CMAKE_CURRENT_SOURCE_DIR}) +subdirlist(subdirs ${CMAKE_CURRENT_SOURCE_DIR}) foreach(subd ${subdirs}) get_filename_component(PROJECT_ID ${subd} NAME) @@ -12,7 +12,8 @@ foreach(subd ${subdirs}) set(PROJECT_ID "${PROJECT_ID}${project_suffix}") message(STATUS "-- " ${PROJECT_ID}) - file(GLOB_RECURSE TMP_LIB_SOURCE_FILES ${PATH_PREFIX}/include/* ${PATH_PREFIX}/src/*) + file(GLOB_RECURSE TMP_LIB_SOURCE_FILES ${PATH_PREFIX}/include/* + ${PATH_PREFIX}/src/*) list(APPEND LIB_SOURCE_FILES ${TMP_LIB_SOURCE_FILES}) file(GLOB_RECURSE TMP_FUNC_TESTS_SOURCE_FILES ${PATH_PREFIX}/tests/*) @@ -24,40 +25,47 @@ add_library(${exec_func_lib} STATIC ${LIB_SOURCE_FILES}) set_target_properties(${exec_func_lib} PROPERTIES LINKER_LANGUAGE CXX) add_dependencies(${exec_func_lib} ppc_libenvpp) -target_link_directories(${exec_func_lib} PUBLIC "${CMAKE_BINARY_DIR}/ppc_libenvpp/install/lib") -target_link_directories(${exec_func_lib} PUBLIC "${CMAKE_BINARY_DIR}/ppc_libenvpp/build") +target_link_directories(${exec_func_lib} PUBLIC + "${CMAKE_BINARY_DIR}/ppc_libenvpp/install/lib") +target_link_directories(${exec_func_lib} PUBLIC + "${CMAKE_BINARY_DIR}/ppc_libenvpp/build") target_link_libraries(${exec_func_lib} PUBLIC ${PPC_ENVPP_LIB_NAME}) target_link_libraries(${exec_func_lib} PUBLIC ${PPC_FMT_LIB_NAME}) add_dependencies(${exec_func_lib} ppc_json) -target_link_directories(${exec_func_lib} INTERFACE "${CMAKE_BINARY_DIR}/ppc_json/install/include") +target_link_directories(${exec_func_lib} INTERFACE + "${CMAKE_BINARY_DIR}/ppc_json/install/include") add_dependencies(${exec_func_lib} ppc_googletest) -target_link_directories(${exec_func_lib} PUBLIC "${CMAKE_BINARY_DIR}/ppc_googletest/install/lib") +target_link_directories(${exec_func_lib} PUBLIC + "${CMAKE_BINARY_DIR}/ppc_googletest/install/lib") target_link_libraries(${exec_func_lib} PUBLIC gtest gtest_main) target_link_libraries(${exec_func_lib} PUBLIC Threads::Threads) find_package(OpenMP REQUIRED) -target_link_libraries(${exec_func_lib} PUBLIC ${OpenMP_libomp_LIBRARY} OpenMP::OpenMP_CXX) +target_link_libraries(${exec_func_lib} PUBLIC ${OpenMP_libomp_LIBRARY} + OpenMP::OpenMP_CXX) add_dependencies(${exec_func_lib} ppc_onetbb) -target_link_directories(${exec_func_lib} PUBLIC ${CMAKE_BINARY_DIR}/ppc_onetbb/install/lib) +target_link_directories(${exec_func_lib} PUBLIC + ${CMAKE_BINARY_DIR}/ppc_onetbb/install/lib) if(NOT MSVC) - target_link_libraries(${exec_func_lib} PUBLIC ${PPC_TBB_LIB_NAME}) + target_link_libraries(${exec_func_lib} PUBLIC ${PPC_TBB_LIB_NAME}) endif() find_package(MPI REQUIRED) -if( MPI_COMPILE_FLAGS ) - set_target_properties(${exec_func_lib} PROPERTIES COMPILE_FLAGS "${MPI_COMPILE_FLAGS}") -endif( MPI_COMPILE_FLAGS ) - -if( MPI_LINK_FLAGS ) - set_target_properties(${exec_func_lib} PROPERTIES LINK_FLAGS "${MPI_LINK_FLAGS}") -endif( MPI_LINK_FLAGS ) +if(MPI_COMPILE_FLAGS) + set_target_properties(${exec_func_lib} PROPERTIES COMPILE_FLAGS + "${MPI_COMPILE_FLAGS}") +endif(MPI_COMPILE_FLAGS) + +if(MPI_LINK_FLAGS) + set_target_properties(${exec_func_lib} PROPERTIES LINK_FLAGS + "${MPI_LINK_FLAGS}") +endif(MPI_LINK_FLAGS) target_link_libraries(${exec_func_lib} PUBLIC ${MPI_LIBRARIES}) - add_library(stb_image STATIC ${CMAKE_SOURCE_DIR}/3rdparty/stb_image_wrapper.cpp) target_include_directories(stb_image PUBLIC ${CMAKE_SOURCE_DIR}/3rdparty/stb) target_link_libraries(${exec_func_lib} PUBLIC stb_image) @@ -70,10 +78,10 @@ enable_testing() add_test(NAME ${exec_func_tests} COMMAND ${exec_func_tests}) # Installation rules -install(TARGETS ${exec_func_lib} - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin) +install( + TARGETS ${exec_func_lib} + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin) -install(TARGETS ${exec_func_tests} - RUNTIME DESTINATION bin) +install(TARGETS ${exec_func_tests} RUNTIME DESTINATION bin) diff --git a/scoreboard/CMakeLists.txt b/scoreboard/CMakeLists.txt index c74a4fdbe..1362ef99f 100644 --- a/scoreboard/CMakeLists.txt +++ b/scoreboard/CMakeLists.txt @@ -1,19 +1,20 @@ -if (NOT USE_SCOREBOARD) - return() +if(NOT USE_SCOREBOARD) + return() endif() file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html) set(OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/html) -add_custom_target(generate_scoreboard ALL - COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/main.py -o ${OUTPUT_DIR} - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - COMMENT "Running main.py" -) +add_custom_target( + generate_scoreboard ALL + COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/main.py -o + ${OUTPUT_DIR} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + COMMENT "Running main.py") -add_custom_command(TARGET generate_scoreboard POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/static - ${OUTPUT_DIR}/static - COMMENT "Copying static directory to binary directory" -) +add_custom_command( + TARGET generate_scoreboard + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/static + ${OUTPUT_DIR}/static + COMMENT "Copying static directory to binary directory") diff --git a/tasks/CMakeLists.txt b/tasks/CMakeLists.txt index ee8cd2675..c752607e9 100644 --- a/tasks/CMakeLists.txt +++ b/tasks/CMakeLists.txt @@ -21,9 +21,13 @@ ppc_add_test(${PERF_TEST_EXEC} common/runners/performance.cpp USE_PERF_TESTS) set(IMPLEMENTATIONS all mpi omp seq stl tbb) # ——— Configure each subproject ————————————————————————————————————— -file(GLOB subdirs RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/*") +file( + GLOB subdirs + RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/*") foreach(sub IN LISTS subdirs) - if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${sub}" AND NOT sub STREQUAL "common") - ppc_configure_subproject(${sub}) - endif() + if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${sub}" AND NOT sub STREQUAL + "common") + ppc_configure_subproject(${sub}) + endif() endforeach()