Skip to content

Commit 6c57c23

Browse files
committed
cmake: adjust make targets for MPI
with the recent changes, all non-MPI executables cannot be compiled when MPI is enabled
1 parent e6168cd commit 6c57c23

File tree

10 files changed

+193
-182
lines changed

10 files changed

+193
-182
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ option(pfasst_DEFAULT_RAND_SEED "Using a hardcoded random seed"
2626
if(${pfasst_WITH_MPI})
2727
find_package(MPI REQUIRED)
2828
message(STATUS "Using MPI C++ Compiler: ${MPI_CXX_COMPILER}")
29+
add_definitions(-DWITH_MPI)
2930
endif()
3031

3132
if(pfasst_DEFAULT_RAND_SEED)

examples/advection_diffusion/CMakeLists.txt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,11 @@ if(${pfasst_WITH_MPI})
1919
set(advec_mpi_examples
2020
mpi_pfasst
2121
)
22+
set(all_advec_examples ${advec_mpi_examples})
23+
else()
24+
set(all_advec_examples ${advec_examples})
2225
endif()
2326

24-
set(all_advec_examples
25-
${advec_examples}
26-
${advec_mpi_examples}
27-
)
28-
2927
foreach(example ${all_advec_examples})
3028
add_executable(${example} ${CMAKE_CURRENT_SOURCE_DIR}/${example}.cpp)
3129
if(NOT FFTW_FOUND)

examples/boris/CMakeLists.txt

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,36 @@ include_directories(
1010
)
1111
add_subdirectory(bindings)
1212

13-
set(boris_examples
14-
boris_sdc
15-
boris_mlsdc
16-
)
17-
18-
foreach(example ${boris_examples})
19-
add_executable(${example} ${CMAKE_CURRENT_SOURCE_DIR}/${example}.cpp)
20-
target_link_libraries(${example}
21-
${3rdparty_DEPENDEND_LIBS}
22-
simple_physics_solver
13+
if(NOT ${pfasst_WITH_MPI})
14+
set(boris_examples
15+
boris_sdc
16+
boris_mlsdc
2317
)
24-
if(${pfasst_NUM_DEPENDEND_TARGETS} GREATER 0)
25-
add_dependencies(${example} ${pfasst_DEPENDEND_TARGETS})
26-
endif()
27-
add_dependencies(${example} simple_physics_solver)
28-
if(pfasst_INSTALL_EXAMPLES)
29-
install(TARGETS ${example} RUNTIME DESTINATION bin)
30-
endif()
31-
endforeach(example)
32-
33-
if(pfasst_BORIS_SAME_LEVELS)
34-
get_target_property(boris_mlsdc_definitions boris_mlsdc COMPILE_DEFINITIONS)
35-
if(${boris_mlsdc_definitions})
36-
list(APPEND boris_mlsdc_definitions "BORIS_SAME_LEVELS")
37-
else()
38-
set(boris_mlsdc_definitions "BORIS_SAME_LEVELS")
18+
19+
foreach(example ${boris_examples})
20+
add_executable(${example} ${CMAKE_CURRENT_SOURCE_DIR}/${example}.cpp)
21+
target_link_libraries(${example}
22+
${3rdparty_DEPENDEND_LIBS}
23+
simple_physics_solver
24+
)
25+
if(${pfasst_NUM_DEPENDEND_TARGETS} GREATER 0)
26+
add_dependencies(${example} ${pfasst_DEPENDEND_TARGETS})
27+
endif()
28+
add_dependencies(${example} simple_physics_solver)
29+
if(pfasst_INSTALL_EXAMPLES)
30+
install(TARGETS ${example} RUNTIME DESTINATION bin)
31+
endif()
32+
endforeach(example)
33+
34+
if(pfasst_BORIS_SAME_LEVELS)
35+
get_target_property(boris_mlsdc_definitions boris_mlsdc COMPILE_DEFINITIONS)
36+
if(${boris_mlsdc_definitions})
37+
list(APPEND boris_mlsdc_definitions "BORIS_SAME_LEVELS")
38+
else()
39+
set(boris_mlsdc_definitions "BORIS_SAME_LEVELS")
40+
endif()
41+
set_target_properties(boris_mlsdc PROPERTIES COMPILE_DEFINITIONS ${boris_mlsdc_definitions})
3942
endif()
40-
set_target_properties(boris_mlsdc PROPERTIES COMPILE_DEFINITIONS ${boris_mlsdc_definitions})
4143
endif()
4244

4345
add_feature_info(Dummy-Boris-MLSDC

examples/scalar/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ include_directories(
66
${3rdparty_INCLUDES}
77
)
88

9-
set(scalar_examples
10-
scalar_sdc
11-
)
9+
if(NOT ${pfasst_WITH_MPI})
10+
set(scalar_examples
11+
scalar_sdc
12+
)
13+
endif()
1214

1315
foreach(example ${scalar_examples})
1416
add_executable(${example} ${CMAKE_CURRENT_SOURCE_DIR}/${example}.cpp)

examples/vanderpol/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ include_directories(
66
${3rdparty_INCLUDES}
77
)
88

9-
set(vanderpol_examples
10-
vdp_sdc
11-
)
9+
if(NOT ${pfasst_WITH_MPI})
10+
set(vanderpol_examples
11+
vdp_sdc
12+
)
13+
endif()
1214

1315
foreach(example ${vanderpol_examples})
1416
add_executable(${example} ${CMAKE_CURRENT_SOURCE_DIR}/${example}.cpp)

tests/CMakeLists.txt

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,37 @@ include_directories(
66
${CMAKE_CURRENT_SOURCE_DIR}
77
)
88

9-
set(TESTS
10-
test_quadrature
11-
test_polynomial
12-
)
13-
14-
foreach(test ${TESTS})
15-
message(STATUS " ${test}")
16-
add_executable(${test} ${test}.cpp)
17-
if(${pfasst_NUM_DEPENDEND_TARGETS} GREATER 0)
18-
add_dependencies(${test} ${pfasst_DEPENDEND_TARGETS})
19-
endif()
20-
if(${pfasst_TESTS_NUM_DEPENDEND_TARGETS} GREATER 0)
21-
add_dependencies(${test} ${pfasst_TESTS_DEPENDEND_TARGETS})
22-
endif()
23-
target_link_libraries(${test}
24-
${3rdparty_DEPENDEND_LIBS}
25-
${TESTS_3rdparty_DEPENDEND_LIBS}
26-
${pfasst_DEPENDEND_LIBS}
9+
if(NOT ${pfasst_WITH_MPI})
10+
set(TESTS
11+
test_quadrature
12+
test_polynomial
2713
)
28-
if(pfasst_WITH_GCC_PROF AND ${CMAKE_CXX_COMPILER_ID} MATCHES GNU)
29-
set_target_properties(${test}
30-
PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs"
31-
LINK_FLAGS "-fprofile-arcs"
14+
15+
foreach(test ${TESTS})
16+
message(STATUS " ${test}")
17+
add_executable(${test} ${test}.cpp)
18+
if(${pfasst_NUM_DEPENDEND_TARGETS} GREATER 0)
19+
add_dependencies(${test} ${pfasst_DEPENDEND_TARGETS})
20+
endif()
21+
if(${pfasst_TESTS_NUM_DEPENDEND_TARGETS} GREATER 0)
22+
add_dependencies(${test} ${pfasst_TESTS_DEPENDEND_TARGETS})
23+
endif()
24+
target_link_libraries(${test}
25+
${3rdparty_DEPENDEND_LIBS}
26+
${TESTS_3rdparty_DEPENDEND_LIBS}
27+
${pfasst_DEPENDEND_LIBS}
3228
)
33-
endif()
34-
add_test(NAME ${test}
35-
COMMAND ${CMAKE_BINARY_DIR}/tests/${test} --gtest_output=xml:${test}_out.xml
36-
)
37-
endforeach(test)
29+
if(pfasst_WITH_GCC_PROF AND ${CMAKE_CXX_COMPILER_ID} MATCHES GNU)
30+
set_target_properties(${test}
31+
PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs"
32+
LINK_FLAGS "-fprofile-arcs"
33+
)
34+
endif()
35+
add_test(NAME ${test}
36+
COMMAND ${CMAKE_BINARY_DIR}/tests/${test} --gtest_output=xml:${test}_out.xml
37+
)
38+
endforeach(test)
39+
endif()
3840

3941
if(${pfasst_BUILD_EXAMPLES})
4042
add_subdirectory(examples)

tests/examples/advection_diffusion/CMakeLists.txt

Lines changed: 34 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,52 +6,17 @@ include_directories(
66
${pfasst_INCLUDES}
77
)
88

9-
set(TESTS
10-
test_advection_diffusion
11-
)
12-
139
if(${pfasst_WITH_MPI})
1410
set(MPI_TESTS
1511
test_mpi_advection_diffusion
1612
)
17-
endif()
18-
19-
foreach(test ${TESTS})
20-
message(STATUS " ${test}")
21-
add_executable(${test} ${test}.cpp)
22-
if(NOT FFTW_FOUND)
23-
add_dependencies(${test} fftw3)
24-
endif()
25-
if(${pfasst_NUM_DEPENDEND_TARGETS} GREATER 0)
26-
add_dependencies(${test} ${pfasst_DEPENDEND_TARGETS})
27-
endif()
28-
if(${pfasst_TESTS_NUM_DEPENDEND_TARGETS} GREATER 0)
29-
add_dependencies(${test} ${pfasst_TESTS_DEPENDEND_TARGETS})
30-
endif()
31-
target_link_libraries(${test}
32-
${3rdparty_DEPENDEND_LIBS}
33-
${TESTS_3rdparty_DEPENDEND_LIBS}
34-
${FFTW_LIBRARIES}
35-
${pfasst_DEPENDEND_LIBS}
36-
)
37-
if(pfasst_WITH_GCC_PROF AND ${CMAKE_CXX_COMPILER_ID} MATCHES GNU)
38-
set_target_properties(${test}
39-
PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs"
40-
LINK_FLAGS "-fprofile-arcs"
41-
)
42-
endif()
43-
add_test(NAME ${test}
44-
COMMAND ${CMAKE_BINARY_DIR}/tests/examples/advection_diffusion/${test} --gtest_output=xml:${test}_out.xml
45-
)
46-
endforeach(test)
4713

48-
if(${pfasst_WITH_MPI})
4914
include_directories(${MPI_CXX_INCLUDE_PATH})
5015
foreach(test ${MPI_TESTS})
5116
message(STATUS " ${test}")
5217
add_executable(${test} ${test}.cpp)
5318
if(NOT FFTW_FOUND)
54-
add_dependencies(${test} fftw3)
19+
add_dependencies(${test} fftw3)
5520
endif()
5621
if(${pfasst_NUM_DEPENDEND_TARGETS} GREATER 0)
5722
add_dependencies(${test} ${pfasst_DEPENDEND_TARGETS})
@@ -83,4 +48,37 @@ if(${pfasst_WITH_MPI})
8348
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ${CMAKE_BINARY_DIR}/tests/examples/advection_diffusion/${test} ${MPIEXEC_POSTFLAGS}
8449
)
8550
endforeach(test)
51+
else()
52+
set(TESTS
53+
test_advection_diffusion
54+
)
55+
56+
foreach(test ${TESTS})
57+
message(STATUS " ${test}")
58+
add_executable(${test} ${test}.cpp)
59+
if(NOT FFTW_FOUND)
60+
add_dependencies(${test} fftw3)
61+
endif()
62+
if(${pfasst_NUM_DEPENDEND_TARGETS} GREATER 0)
63+
add_dependencies(${test} ${pfasst_DEPENDEND_TARGETS})
64+
endif()
65+
if(${pfasst_TESTS_NUM_DEPENDEND_TARGETS} GREATER 0)
66+
add_dependencies(${test} ${pfasst_TESTS_DEPENDEND_TARGETS})
67+
endif()
68+
target_link_libraries(${test}
69+
${3rdparty_DEPENDEND_LIBS}
70+
${TESTS_3rdparty_DEPENDEND_LIBS}
71+
${FFTW_LIBRARIES}
72+
${pfasst_DEPENDEND_LIBS}
73+
)
74+
if(pfasst_WITH_GCC_PROF AND ${CMAKE_CXX_COMPILER_ID} MATCHES GNU)
75+
set_target_properties(${test}
76+
PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs"
77+
LINK_FLAGS "-fprofile-arcs"
78+
)
79+
endif()
80+
add_test(NAME ${test}
81+
COMMAND ${CMAKE_BINARY_DIR}/tests/examples/advection_diffusion/${test} --gtest_output=xml:${test}_out.xml
82+
)
83+
endforeach(test)
8684
endif()

tests/examples/boris/CMakeLists.txt

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,37 @@ include_directories(
44
${pfasst_INCLUDES}
55
)
66

7-
set(TESTS
8-
test_boris_particle_util
9-
# test_boris_physics
10-
test_boris_sweeper
11-
)
12-
13-
foreach(test ${TESTS})
14-
message(STATUS " ${test}")
15-
add_executable(${test} ${test}.cpp)
16-
if(${pfasst_NUM_DEPENDEND_TARGETS} GREATER 0)
17-
add_dependencies(${test} ${pfasst_DEPENDEND_TARGETS})
18-
endif()
19-
if(${pfasst_TESTS_NUM_DEPENDEND_TARGETS} GREATER 0)
20-
add_dependencies(${test} ${pfasst_TESTS_DEPENDEND_TARGETS})
21-
endif()
22-
target_link_libraries(${test}
23-
${3rdparty_DEPENDEND_LIBS}
24-
${TESTS_3rdparty_DEPENDEND_LIBS}
25-
${pfasst_DEPENDEND_LIBS}
7+
if(NOT ${pfasst_WITH_MPI})
8+
set(TESTS
9+
test_boris_particle_util
10+
# test_boris_physics
11+
test_boris_sweeper
2612
)
27-
if(pfasst_WITH_GCC_PROF AND ${CMAKE_CXX_COMPILER_ID} MATCHES GNU)
28-
set_target_properties(${test}
29-
PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs"
30-
LINK_FLAGS "-fprofile-arcs"
13+
14+
foreach(test ${TESTS})
15+
message(STATUS " ${test}")
16+
add_executable(${test} ${test}.cpp)
17+
if(${pfasst_NUM_DEPENDEND_TARGETS} GREATER 0)
18+
add_dependencies(${test} ${pfasst_DEPENDEND_TARGETS})
19+
endif()
20+
if(${pfasst_TESTS_NUM_DEPENDEND_TARGETS} GREATER 0)
21+
add_dependencies(${test} ${pfasst_TESTS_DEPENDEND_TARGETS})
22+
endif()
23+
target_link_libraries(${test}
24+
${3rdparty_DEPENDEND_LIBS}
25+
${TESTS_3rdparty_DEPENDEND_LIBS}
26+
${pfasst_DEPENDEND_LIBS}
3127
)
32-
endif()
33-
add_test(NAME ${test}
34-
COMMAND ${CMAKE_BINARY_DIR}/tests/examples/boris/${test} --gtest_output=xml:${test}_out.xml
35-
)
36-
endforeach(test)
28+
if(pfasst_WITH_GCC_PROF AND ${CMAKE_CXX_COMPILER_ID} MATCHES GNU)
29+
set_target_properties(${test}
30+
PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs"
31+
LINK_FLAGS "-fprofile-arcs"
32+
)
33+
endif()
34+
add_test(NAME ${test}
35+
COMMAND ${CMAKE_BINARY_DIR}/tests/examples/boris/${test} --gtest_output=xml:${test}_out.xml
36+
)
37+
endforeach(test)
3738

38-
target_link_libraries(test_boris_sweeper simple_physics_solver)
39+
target_link_libraries(test_boris_sweeper simple_physics_solver)
40+
endif()

0 commit comments

Comments
 (0)