Skip to content

Commit 67352f7

Browse files
authored
Apply cmake format remarks (#477)
Reformat the code to follow `cmakelang` tool standards. Non-functional change
1 parent 59ae80a commit 67352f7

17 files changed

+360
-339
lines changed

cmake/configure.cmake

Lines changed: 62 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,91 @@
11
if(MSVC)
2-
option(gtest_force_shared_crt "" TRUE)
2+
option(gtest_force_shared_crt "" TRUE)
33
endif(MSVC)
44

5-
if (NOT CMAKE_BUILD_TYPE)
6-
set(CMAKE_BUILD_TYPE "Release")
5+
if(NOT CMAKE_BUILD_TYPE)
6+
set(CMAKE_BUILD_TYPE "Release")
77
endif(NOT CMAKE_BUILD_TYPE)
88

9-
if (MSVC)
10-
add_compile_options("/utf-8")
9+
if(MSVC)
10+
add_compile_options("/utf-8")
1111
endif()
1212

13-
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/arch" )
14-
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib" )
15-
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin" )
13+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/arch")
14+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib")
15+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin")
1616

17-
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/arch" )
18-
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib" )
19-
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin" )
17+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/arch")
18+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib")
19+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin")
2020

21-
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/arch" )
22-
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" )
23-
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" )
21+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/arch")
22+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
23+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
2424

25-
set( CMAKE_CXX_STANDARD 23 )
25+
set(CMAKE_CXX_STANDARD 23)
2626

2727
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2828

2929
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
3030

31-
if (USE_COVERAGE)
32-
set(CMAKE_INSTALL_RPATH "${CMAKE_BINARY_DIR}/ppc_onetbb/install/lib")
31+
if(USE_COVERAGE)
32+
set(CMAKE_INSTALL_RPATH "${CMAKE_BINARY_DIR}/ppc_onetbb/install/lib")
3333
else()
34-
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
35-
endif ()
34+
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
35+
endif()
3636

3737
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
3838
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON)
3939
set(CMAKE_SKIP_BUILD_RPATH OFF)
4040

41-
if( UNIX )
42-
set(COMMON_COMPILER_FLAGS
43-
"${COMMON_COMPILER_FLAGS} \
44-
-Wall -Wextra \
45-
-Wno-unused-parameter \
46-
-Wno-cast-function-type \
41+
if(UNIX)
42+
set(COMMON_COMPILER_FLAGS
43+
"${COMMON_COMPILER_FLAGS} \
44+
-Wall -Wextra \
45+
-Wno-unused-parameter \
46+
-Wno-cast-function-type \
4747
-Wsign-compare")
48-
if (NOT APPLE)
49-
set(COMMON_COMPILER_FLAGS
50-
"${COMMON_COMPILER_FLAGS} \
51-
-Wpedantic \
52-
-Wpointer-arith \
53-
-Wcast-align \
54-
-Wwrite-strings \
55-
-Wswitch-enum \
56-
-Wnull-dereference \
57-
-Wswitch-enum \
58-
-Wformat=2 \
59-
-Wmissing-declarations \
48+
if(NOT APPLE)
49+
set(COMMON_COMPILER_FLAGS
50+
"${COMMON_COMPILER_FLAGS} \
51+
-Wpedantic \
52+
-Wpointer-arith \
53+
-Wcast-align \
54+
-Wwrite-strings \
55+
-Wswitch-enum \
56+
-Wnull-dereference \
57+
-Wswitch-enum \
58+
-Wformat=2 \
59+
-Wmissing-declarations \
6060
-Wno-c11-extensions")
61-
endif (NOT APPLE)
62-
set(CMAKE_C_FLAGS
63-
"${CMAKE_C_FLAGS} \
64-
-Wold-style-definition \
61+
endif(NOT APPLE)
62+
set(CMAKE_C_FLAGS
63+
"${CMAKE_C_FLAGS} \
64+
-Wold-style-definition \
6565
-Wmissing-prototypes")
6666

67-
if ("${ENABLE_ADDRESS_SANITIZER}" OR "${ENABLE_UB_SANITIZER}" OR "${ENABLE_LEAK_SANITIZER}")
68-
set (COMMON_COMPILER_FLAGS "${COMMON_COMPILER_FLAGS} -Wno-cast-align")
69-
endif()
67+
if("${ENABLE_ADDRESS_SANITIZER}"
68+
OR "${ENABLE_UB_SANITIZER}"
69+
OR "${ENABLE_LEAK_SANITIZER}")
70+
set(COMMON_COMPILER_FLAGS "${COMMON_COMPILER_FLAGS} -Wno-cast-align")
71+
endif()
7072

71-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_COMPILER_FLAGS}")
72-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILER_FLAGS}")
73-
if (USE_COVERAGE)
74-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
75-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
76-
endif(USE_COVERAGE)
73+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_COMPILER_FLAGS}")
74+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILER_FLAGS}")
75+
if(USE_COVERAGE)
76+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
77+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
78+
endif(USE_COVERAGE)
7779
endif()
7880

79-
if( MSVC )
80-
set(COMMON_FLAGS "/W4 /wd4267 /wd4244")
81-
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${COMMON_FLAGS}" )
82-
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_FLAGS}")
83-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}" )
84-
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_FLAGS}" )
85-
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_FLAGS}")
86-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS}" )
87-
endif( MSVC )
81+
if(MSVC)
82+
set(COMMON_FLAGS "/W4 /wd4267 /wd4244")
83+
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${COMMON_FLAGS}")
84+
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_FLAGS}")
85+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}")
86+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_FLAGS}")
87+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_FLAGS}")
88+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS}")
89+
endif(MSVC)
8890

89-
find_package( Threads REQUIRED )
91+
find_package(Threads REQUIRED)

cmake/functions.cmake

Lines changed: 71 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,97 @@
11
# ——— Helper function to add & register tests —————————————————————————
22
function(ppc_add_test test_name test_src USE_FLAG)
3-
if(${USE_FLAG})
4-
add_executable(${test_name} "${PROJECT_SOURCE_DIR}/${test_src}")
5-
enable_testing()
6-
add_test(NAME ${test_name} COMMAND ${test_name})
7-
install(TARGETS ${test_name} RUNTIME DESTINATION bin)
8-
endif()
3+
if(${USE_FLAG})
4+
add_executable(${test_name} "${PROJECT_SOURCE_DIR}/${test_src}")
5+
enable_testing()
6+
add_test(NAME ${test_name} COMMAND ${test_name})
7+
install(TARGETS ${test_name} RUNTIME DESTINATION bin)
8+
endif()
99
endfunction()
1010

1111
# Function to configure tests
1212
function(add_tests test_flag exec_target subdir)
13-
if(${test_flag})
14-
# Gather all source files under tests/<subdir>
15-
file(GLOB_RECURSE src_files
16-
"${TEST_DIR}/${subdir}/*.cpp"
17-
"${TEST_DIR}/${subdir}/*.cxx"
18-
"${TEST_DIR}/${subdir}/*.cc"
19-
)
20-
target_sources(${exec_target} PRIVATE ${src_files})
21-
list(APPEND TEST_EXECUTABLES ${exec_target})
22-
set(TEST_EXECUTABLES "${TEST_EXECUTABLES}" PARENT_SCOPE)
23-
endif()
13+
if(${test_flag})
14+
# Gather all source files under tests/<subdir>
15+
file(GLOB_RECURSE src_files "${TEST_DIR}/${subdir}/*.cpp"
16+
"${TEST_DIR}/${subdir}/*.cxx" "${TEST_DIR}/${subdir}/*.cc")
17+
target_sources(${exec_target} PRIVATE ${src_files})
18+
list(APPEND TEST_EXECUTABLES ${exec_target})
19+
set(TEST_EXECUTABLES
20+
"${TEST_EXECUTABLES}"
21+
PARENT_SCOPE)
22+
endif()
2423
endfunction()
2524

2625
# ============================================================================
27-
# Function: setup_implementation
28-
# - NAME: implementation sub‐directory name (e.g. “mpi”)
29-
# - PROJ_NAME: project base name
30-
# - BASE_DIR: root source directory
31-
# - TESTS: list of test executables to link against
26+
# Function: setup_implementation - NAME: implementation sub‐directory name
27+
# (e.g. “mpi”) - PROJ_NAME: project base name - BASE_DIR: root source
28+
# directory - TESTS: list of test executables to link against
3229
# ============================================================================
3330
function(setup_implementation)
34-
# parse named args: NAME, PROJ_NAME, BASE_DIR; multi‐value: TESTS
35-
cmake_parse_arguments(
36-
SETUP
37-
"" # no plain options
38-
"NAME;PROJ_NAME;BASE_DIR"
39-
"TESTS"
40-
${ARGN}
41-
)
31+
# parse named args: NAME, PROJ_NAME, BASE_DIR; multi‐value: TESTS
32+
cmake_parse_arguments(SETUP "" # no plain options
33+
"NAME;PROJ_NAME;BASE_DIR" "TESTS" ${ARGN})
4234

43-
# skip if impl dir doesn't exist
44-
set(IMP_DIR "${SETUP_BASE_DIR}/${SETUP_NAME}")
45-
if(NOT EXISTS "${IMP_DIR}")
46-
return()
47-
endif()
48-
message(STATUS " -- ${SETUP_NAME}")
35+
# skip if impl dir doesn't exist
36+
set(IMP_DIR "${SETUP_BASE_DIR}/${SETUP_NAME}")
37+
if(NOT EXISTS "${IMP_DIR}")
38+
return()
39+
endif()
40+
message(STATUS " -- ${SETUP_NAME}")
4941

50-
# collect sources
51-
file(GLOB_RECURSE CPP_SOURCES "${IMP_DIR}/src/*.cpp")
52-
file(GLOB_RECURSE ALL_SOURCES
53-
"${IMP_DIR}/include/*.h"
54-
"${IMP_DIR}/include/*.hpp"
55-
"${IMP_DIR}/src/*.cpp"
56-
)
42+
# collect sources
43+
file(GLOB_RECURSE CPP_SOURCES "${IMP_DIR}/src/*.cpp")
44+
file(GLOB_RECURSE ALL_SOURCES "${IMP_DIR}/include/*.h"
45+
"${IMP_DIR}/include/*.hpp" "${IMP_DIR}/src/*.cpp")
5746

58-
# create library (STATIC if .cpp exist, otherwise INTERFACE)
59-
set(LIB_NAME "${SETUP_PROJ_NAME}_${SETUP_NAME}")
60-
if(CPP_SOURCES)
61-
add_library(${LIB_NAME} STATIC ${ALL_SOURCES})
62-
else()
63-
add_library(${LIB_NAME} INTERFACE ${ALL_SOURCES})
64-
endif()
47+
# create library (STATIC if .cpp exist, otherwise INTERFACE)
48+
set(LIB_NAME "${SETUP_PROJ_NAME}_${SETUP_NAME}")
49+
if(CPP_SOURCES)
50+
add_library(${LIB_NAME} STATIC ${ALL_SOURCES})
51+
else()
52+
add_library(${LIB_NAME} INTERFACE ${ALL_SOURCES})
53+
endif()
6554

66-
# link core module
67-
target_link_libraries(${LIB_NAME} PUBLIC core_module_lib)
55+
# link core module
56+
target_link_libraries(${LIB_NAME} PUBLIC core_module_lib)
6857

69-
# and link into each enabled test executable
70-
foreach(test_exec ${SETUP_TESTS})
71-
target_link_libraries(${test_exec} PUBLIC ${LIB_NAME})
72-
endforeach()
58+
# and link into each enabled test executable
59+
foreach(test_exec ${SETUP_TESTS})
60+
target_link_libraries(${test_exec} PUBLIC ${LIB_NAME})
61+
endforeach()
7362
endfunction()
7463

7564
# Function to configure each subproject
7665
function(ppc_configure_subproject SUBDIR)
77-
# Module-specific compile-time definitions
78-
add_compile_definitions(
79-
PPC_SETTINGS_${SUBDIR}="${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/settings.json"
80-
PPC_ID_${SUBDIR}="${SUBDIR}"
81-
)
66+
# Module-specific compile-time definitions
67+
add_compile_definitions(
68+
PPC_SETTINGS_${SUBDIR}="${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/settings.json"
69+
PPC_ID_${SUBDIR}="${SUBDIR}")
8270

83-
# Switch project context to the subproject
84-
project(${SUBDIR})
71+
# Switch project context to the subproject
72+
project(${SUBDIR})
8573

86-
# Directory with tests and list of test executables (populated by setup_implementation)
87-
set(TEST_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/tests")
88-
set(TEST_EXECUTABLES "")
74+
# Directory with tests and list of test executables (populated by
75+
# setup_implementation)
76+
set(TEST_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/tests")
77+
set(TEST_EXECUTABLES "")
8978

90-
# Register functional and performance test runners
91-
add_tests(USE_FUNC_TESTS ${FUNC_TEST_EXEC} functional)
92-
add_tests(USE_PERF_TESTS ${PERF_TEST_EXEC} performance)
79+
# Register functional and performance test runners
80+
add_tests(USE_FUNC_TESTS ${FUNC_TEST_EXEC} functional)
81+
add_tests(USE_PERF_TESTS ${PERF_TEST_EXEC} performance)
9382

94-
message(STATUS "${SUBDIR}")
83+
message(STATUS "${SUBDIR}")
9584

96-
# List of implementations to configure
97-
foreach(IMPL IN LISTS IMPLEMENTATIONS)
98-
setup_implementation(
99-
NAME ${IMPL}
100-
PROJ_NAME ${SUBDIR}
101-
TESTS "${TEST_EXECUTABLES}"
102-
BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}"
103-
)
104-
endforeach()
85+
# List of implementations to configure
86+
foreach(IMPL IN LISTS IMPLEMENTATIONS)
87+
setup_implementation(
88+
NAME
89+
${IMPL}
90+
PROJ_NAME
91+
${SUBDIR}
92+
TESTS
93+
"${TEST_EXECUTABLES}"
94+
BASE_DIR
95+
"${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}")
96+
endforeach()
10597
endfunction()

cmake/gtest.cmake

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
include_directories(${CMAKE_SOURCE_DIR}/3rdparty/googletest/googletest/include)
22
include(ExternalProject)
33

4-
ExternalProject_Add(ppc_googletest
5-
SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/googletest"
6-
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest"
7-
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build"
8-
INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install"
9-
10-
CMAKE_ARGS
11-
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
12-
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
13-
-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
14-
-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
15-
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
16-
-DCMAKE_CXX_STANDARD_REQUIRED=ON
17-
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
18-
-DCMAKE_C_FLAGS=-w
19-
-DCMAKE_CXX_FLAGS=-w
20-
$<$<BOOL:MSVC>:-Dgtest_force_shared_crt=ON>
21-
22-
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --config ${CMAKE_BUILD_TYPE} --parallel
23-
INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install"
24-
)
4+
ExternalProject_Add(
5+
ppc_googletest
6+
SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/googletest"
7+
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest"
8+
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build"
9+
INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install"
10+
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
11+
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
12+
-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
13+
-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
14+
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
15+
-DCMAKE_CXX_STANDARD_REQUIRED=ON
16+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
17+
-DCMAKE_C_FLAGS=-w
18+
-DCMAKE_CXX_FLAGS=-w
19+
$<$<BOOL:MSVC>:-Dgtest_force_shared_crt=ON>
20+
BUILD_COMMAND
21+
"${CMAKE_COMMAND}" --build
22+
"${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --config
23+
${CMAKE_BUILD_TYPE} --parallel
24+
INSTALL_COMMAND
25+
"${CMAKE_COMMAND}" --install
26+
"${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --prefix
27+
"${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install")

0 commit comments

Comments
 (0)