diff --git a/cmake/modules/DuneBoost.cmake b/cmake/modules/DuneBoost.cmake
index 89412661ed0f63fb6ba19c67cb93d0c93dbfbf8b..13bc132ee6e7c400d3627b0e8d39981c70453247 100644
--- a/cmake/modules/DuneBoost.cmake
+++ b/cmake/modules/DuneBoost.cmake
@@ -14,9 +14,9 @@ set(HAVE_DUNE_BOOST ${Boost_FOUND})
 
 #add all boost realted flags to ALL_PKG_FLAGS, this must happen regardless of a target using add_dune_boost_flags
 if(HAVE_DUNE_BOOST)
-  set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-DENABLE_BOOST=1")
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_DEFS "ENABLE_BOOST=1")
   foreach(dir ${Boost_INCLUDE_DIRS})
-    set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-I${dir}")
+    set_property(GLOBAL APPEND PROPERTY ALL_PKG_INCS "${dir}")
   endforeach()
 endif()
 
diff --git a/cmake/modules/DuneMPI.cmake b/cmake/modules/DuneMPI.cmake
index 58b3e84fa01a40473fba3e8bdc00e2b61d4688eb..22ba9491c8ad383cc14ac843ae5792113b49838b 100644
--- a/cmake/modules/DuneMPI.cmake
+++ b/cmake/modules/DuneMPI.cmake
@@ -34,10 +34,10 @@ if(MPI_C_FOUND)
   set(MPI_DUNE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${MPI_C_LIBRARIES} CACHE STRING
     "Libraries used by DUNE when linking MPI programs")
 
-  set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-DENABLE_MPI=1 -DMPICH_SKIP_MPICXX -DMPIPP_H")
-  foreach(dir ${MPI_DUNE_INCLUDE_PATH})
-    set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-I${dir}")
-  endforeach()
+  # TODO check on where to position this exactly, doesnt look completely thought through
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_DEFS "ENABLE_MPI=1;MPICH_SKIP_MPICXX;MPIPP_H")
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_INCS "${MPI_DUNE_INCLUDE_PATH}")
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_LIBS "${MPI_DUNE_LIBRARIES}")
 
   # Check whether the MPI-2 standard is supported
   include(CMakePushCheckState)
diff --git a/cmake/modules/FindGMP.cmake b/cmake/modules/FindGMP.cmake
index 0b416dae7e7b1f0373adfd77ed876837e3950afd..af7b65bf9b62f2267a25a61ee79e6ac533ac50a1 100644
--- a/cmake/modules/FindGMP.cmake
+++ b/cmake/modules/FindGMP.cmake
@@ -84,9 +84,7 @@ set(HAVE_GMP ${GMP_FOUND})
 
 #add all GMP related flags to ALL_PKG_FLAGS, this must happen regardless of a target using add_dune_gmp_flags
 if(HAVE_GMP)
-  set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-DENABLE_GMP=1")
-  foreach(dir ${GMP_INCLUDE_DIR})
-    set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-I${dir}")
-  endforeach()
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_DEFS "ENABLE_GMP=1")
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_INCS "${GMP_INCLUDE_DIR}")
   set_property(GLOBAL APPEND PROPERTY ALL_PKG_LIBS "${GMP_LIB}" "${GMPXX_LIB}")
 endif()
diff --git a/cmake/modules/FindMETIS.cmake b/cmake/modules/FindMETIS.cmake
index 471e3e9f62678b97fea40be08e2bbf0b555ccda8..3a1239fa359046bc39b261f0bb146fcd81db2a3c 100644
--- a/cmake/modules/FindMETIS.cmake
+++ b/cmake/modules/FindMETIS.cmake
@@ -89,8 +89,6 @@ endif(METIS_FOUND)
 
 #add all metis related flags to ALL_PKG_FLAGS, this must happen regardless of a target using add_dune_metis_flags
 if(METIS_FOUND)
-  foreach(dir ${METIS_INCLUDE_DIRS})
-    set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-I${dir}")
-  endforeach()
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_INCS "${METIS_INCLUDE_DIRS}")
   set_property(GLOBAL APPEND PROPERTY ALL_PKG_LIBS "${METIS_LIBRARIES}")
 endif()
diff --git a/cmake/modules/FindParMETIS.cmake b/cmake/modules/FindParMETIS.cmake
index ec5bb6b88ce3636988ecae3ea4db68e9d4a5f29c..674916eca345c5e1881e3a892a0a2f93b92f2814 100644
--- a/cmake/modules/FindParMETIS.cmake
+++ b/cmake/modules/FindParMETIS.cmake
@@ -100,8 +100,7 @@ endif(PARMETIS_FOUND)
 
 #add all parmetis related flags to ALL_PKG_FLAGS, this must happen regardless of a target using add_dune_parmetis_flags
 if(PARMETIS_FOUND)
-  foreach(dir ${PARMETIS_INCLUDE_DIRS})
-    set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-I${dir}")
-  endforeach()
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_INCS "${PARMETIS_INCLUDE_DIRS}")
   set_property(GLOBAL APPEND PROPERTY ALL_PKG_LIBS "${PARMETIS_LIBRARIES}")
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_DEFS "ENABLE_PARMETIS=1")
 endif()
diff --git a/cmake/modules/FindUMFPack.cmake b/cmake/modules/FindUMFPack.cmake
index 2fef792362c31290a7b3cdf7f4c2056f7215288b..696311ecd7d73ce24fcf57b8648c40a053ba43cf 100644
--- a/cmake/modules/FindUMFPack.cmake
+++ b/cmake/modules/FindUMFPack.cmake
@@ -96,9 +96,7 @@ set(HAVE_UMFPACK ${UMFPACK_FOUND})
 
 #add all umfpack related flags to ALL_PKG_FLAGS, this must happen regardless of a target using add_dune_umfpack_flags
 if(UMFPACK_FOUND)
-  set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "${UMFPACK_DUNE_COMPILE_FLAGS}")
-  foreach(dir "${UMFPACK_INCLUDE_DIRS}")
-    set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-I${dir}")
-  endforeach()
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_INCS "${UMFPACK_INCLUDE_DIRS}")
   set_property(GLOBAL APPEND PROPERTY ALL_PKG_LIBS "${UMFPACK_LIBRARIES}")
+  set_property(GLOBAL APPEND PROPERTY ALL_PKG_DEFS "ENABLE_UMFPACK=1")
 endif()