From 781a43836b4f28fc17f15264b6ecf1513db76af8 Mon Sep 17 00:00:00 2001 From: Markus Blatt <mblatt@dune-project.org> Date: Mon, 20 Aug 2012 15:03:10 +0000 Subject: [PATCH] Simplify code by using set_property with APPEND flag. [[Imported from SVN: r6910]] --- cmake/modules/DuneMPI.cmake | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/cmake/modules/DuneMPI.cmake b/cmake/modules/DuneMPI.cmake index e29c59f04..214dd963d 100644 --- a/cmake/modules/DuneMPI.cmake +++ b/cmake/modules/DuneMPI.cmake @@ -46,19 +46,23 @@ if(MPI_FOUND) endif(MPI_FOUND) # adds MPI flags to the targets -function(add_dune_mpi_flags _targets) +function(add_dune_mpi_flags) + cmake_parse_arguments(ADD_MPI "SOURCE_ONLY" "" "" ${ARGN}) + message("ADD_MPI_UNPARSED_ARGUMENTS=${ADD_MPI_UNPARSED_ARGUMENTS}") + if(ADD_MPI_SOURCE_ONLY) + set(_prefix SOURCE) + else() + set(_prefix TARGET) + endif() if(MPI_FOUND) - foreach(_target ${_targets}) - target_link_libraries(${_target} ${MPI_DUNE_LIBRARIES}) - # The definitions are a hack as we do not seem to know which MPI implementation was - # found. - GET_TARGET_PROPERTY(_props ${_target} COMPILE_FLAGS) - string(REPLACE "_props-NOTFOUND" "" _props "${_props}") - SET_TARGET_PROPERTIES(${_target} PROPERTIES COMPILE_FLAGS - "${_props} ${MPI_DUNE_COMPILE_FLAGS} -DENABLE_MPI=1 -DMPICH_SKIP_MPICXX -DMPIPP_H") - GET_TARGET_PROPERTY(_props ${_target} LINK_FLAGS) - string(REPLACE "_props-NOTFOUND" "" _props "${_props}") - SET_TARGET_PROPERTIES(${_target} PROPERTIES LINK_FLAGS "${_props} ${MPI_DUNE_LINK_FLAGS}") - endforeach(_target ${_targets}) + set_property(${_prefix} ${ADD_MPI_UNPARSED_ARGUMENTS} APPEND PROPERTY COMPILE_FLAGS ${MPI_DUNE_COMPILE_FLAGS}) + set_property(${_prefix} ${ADD_MPI_UNPARSED_ARGUMENTS} APPEND PROPERTY COMPILE_DEFINITIONS ENABLE_MPI=1 + MPICH_SKIP_MPICXX MPIPP_H) + if(NOT ADD_MPI_SOURCE_ONLY) + set_property(${_prefix} ${ADD_MPI_UNPARSED_ARGUMENTS} APPEND PROPERTY LINK_FLAGS ${MPI_DUNE_LINK_FLAGS}) + foreach(target ${ADD_MPI_UNPARSED_ARGUMENTS}) + target_link_libraries(${target} ${MPI_DUNE_LIBRARIES}) + endforeach(target ${ADD_MPI_UNPARSED_ARGUMENTS}) + endif(NOT ADD_MPI_SOURCE_ONLY) endif(MPI_FOUND) endfunction(add_dune_mpi_flags) -- GitLab