From c9563d541c0df8c27e85e01672bd0ba9c1cab5d2 Mon Sep 17 00:00:00 2001 From: Martin Nolte <nolte@mathematik.uni-freiburg.de> Date: Fri, 10 Jul 2015 18:12:14 +0200 Subject: [PATCH] [CMake] create multiple targets for different configurations --- examples/CMakeLists.txt | 48 ++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 1eafc54cd..b1f4fd463 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -12,37 +12,31 @@ set(examples_HEADERS adaptation.hh problem-euler.hh problem.hh) -set(EXAMPLES main_transport - main_ball - main_euler) - -# set default grid type and dimensions -add_definitions("-DALUGRID_CUBE") -add_definitions("-DGRIDDIM=3") -add_definitions("-DWORLDDIM=3") - configure_file(alugrid.cfg ${CMAKE_CURRENT_BINARY_DIR}/alugrid.cfg COPYONLY) - -add_executable(main_transport main.cc) -add_dune_mpi_flags(main_transport ) -dune_target_link_libraries(main_transport "${DUNE_LIBS};${DUNE_ALUGRID_LIBRARY}") -set_property(TARGET main_transport APPEND PROPERTY - COMPILE_DEFINITIONS "TRANSPORT" ) - -add_executable(main_ball main.cc) -add_dune_mpi_flags(main_ball ) -dune_target_link_libraries(main_ball "${DUNE_LIBS};${LIBRARIES};${DUNE_ALUGRID_LIBRARY}") -set_property(TARGET main_ball APPEND PROPERTY - COMPILE_DEFINITIONS "BALL" ) - -add_executable(main_euler main.cc) -add_dune_mpi_flags(main_euler ) -dune_target_link_libraries(main_euler "${DUNE_LIBS};${DUNE_ALUGRID_LIBRARY}") -set_property(TARGET main_euler APPEND PROPERTY - COMPILE_DEFINITIONS "EULER" ) +foreach( variant ball euler transport ) + string( TOUPPER ${variant} variant_upper ) + set( prog "main_${variant}" ) + add_executable( ${prog} main.cc ) + target_compile_definitions( ${prog} PRIVATE "${variant_upper}" ) + target_compile_definitions( ${prog} PUBLIC "ALUGRID_CUBE" "GRIDDIM=3" "WORLDDIM=3" ) + add_dune_mpi_flags( ${prog} ) + dune_target_link_libraries( ${prog} "${DUNE_LIBS};${DUNE_ALUGRID_LIBRARY}" ) + + foreach( type cube simplex ) + string( TOUPPER ${type} type_upper ) + foreach( dim RANGE 2 3 ) + set( prog "main_${variant}_${type}_${dim}d" ) + add_executable( ${prog} EXCLUDE_FROM_ALL main.cc ) + target_compile_definitions( ${prog} PRIVATE "${variant_upper}" "ALUGRID_${type_upper}" "GRIDDIM=${dim}" "WORLDDIM=${dim}" ) + add_dune_mpi_flags( ${prog} ) + dune_target_link_libraries( ${prog} "${DUNE_LIBS};${DUNE_ALUGRID_LIBRARY}" ) + endforeach() + endforeach() +endforeach() install(FILES ${examples_HEADERS} DESTINATION ${examplesdir}) + foreach(i ${SUBDIRS}) if(${i} STREQUAL "test") set(opt EXCLUDE_FROM_ALL) -- GitLab