]> https://gitweb.dealii.org/ - dealii.git/commitdiff
CMake: Split library lists depending on optimized, debug or general keywords
authorMatthias Maier <tamiko@kyomu.43-1.org>
Wed, 21 Aug 2013 22:17:00 +0000 (22:17 +0000)
committerMatthias Maier <tamiko@kyomu.43-1.org>
Wed, 21 Aug 2013 22:17:00 +0000 (22:17 +0000)
git-svn-id: https://svn.dealii.org/trunk@30389 0785d39b-7218-0410-832d-ea1e28bc413d

13 files changed:
deal.II/cmake/config/CMakeLists.txt
deal.II/cmake/configure/configure_1_lapack.cmake
deal.II/cmake/configure/configure_1_mpi.cmake
deal.II/cmake/configure/configure_1_threads.cmake
deal.II/cmake/configure/configure_2_petsc.cmake
deal.II/cmake/configure/configure_2_trilinos.cmake
deal.II/cmake/configure/configure_boost.cmake
deal.II/cmake/configure/configure_mumps.cmake
deal.II/cmake/configure/configure_p4est.cmake
deal.II/cmake/configure/configure_slepc.cmake
deal.II/cmake/macros/macro_configure_feature.cmake
deal.II/cmake/macros/macro_deal_ii_append_libraries.cmake [new file with mode: 0644]
deal.II/source/CMakeLists.txt

index 2ecb9a7ac9f590814df1afade6b7357a06d39047..8d04799bc1005bf8e66e870417c80cb0fa2b0589 100644 (file)
@@ -76,8 +76,8 @@ FOREACH(_build ${DEAL_II_BUILD_TYPES})
 
   SET(CONFIG_LIBRARIES_${_build}
     \${DEAL_II_PATH}/\${DEAL_II_LIBRARY_RELDIR}/${CONFIG_LIBRARY_${_build}}
-    ${DEAL_II_EXTERNAL_LIBRARIES}
     ${DEAL_II_EXTERNAL_LIBRARIES_${_build}}
+    ${DEAL_II_EXTERNAL_LIBRARIES}
     )
   LIST(APPEND CONFIG_LIBRARIES
     ${_keyword}
@@ -172,8 +172,8 @@ IF(DEAL_II_COMPONENT_COMPAT_FILES)
     #
     SET(_libs)
     FOREACH(_lib
-        ${DEAL_II_EXTERNAL_LIBRARIES}
         ${DEAL_II_EXTERNAL_LIBRARIES_${build}}
+        ${DEAL_II_EXTERNAL_LIBRARIES}
         )
       IF(_lib MATCHES "^/")
         LIST(APPEND _libs "${_lib}")
@@ -188,8 +188,8 @@ IF(DEAL_II_COMPONENT_COMPAT_FILES)
     SET(_paths)
     FOREACH(_lib
         $(D)/${DEAL_II_LIBRARY_RELDIR}/${CONFIG_LIBRARY_${build}}
-        ${DEAL_II_EXTERNAL_LIBRARIES}
         ${DEAL_II_EXTERNAL_LIBRARIES_${build}}
+        ${DEAL_II_EXTERNAL_LIBRARIES}
         )
       LIST(APPEND MAKEFILE_LIBS_${build} ${_lib})
       #
index 455a4944b493ac2cd0fd69eb436d4f2be5f97182..7c64e0dbe989682f520d1e3e0c17f7b7b733b256 100644 (file)
@@ -83,7 +83,7 @@ ENDMACRO()
 MACRO(FEATURE_LAPACK_CONFIGURE_EXTERNAL)
 
   ADD_FLAGS(DEAL_II_LINKER_FLAGS "${LAPACK_LINKER_FLAGS}")
-  LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${LAPACK_LIBRARIES})
+  DEAL_II_APPEND_LIBRARIES(${LAPACK_LIBRARIES})
 
   CHECK_FOR_LAPACK_FUNCTIONS()
 ENDMACRO()
index 2eb6bd3847771a695d08d83904aa1ca763d95992..51408488406939b56ec4060830c7f3dfea7f7bfd 100644 (file)
@@ -95,7 +95,7 @@ MACRO(FEATURE_MPI_CONFIGURE_EXTERNAL)
   ADD_FLAGS(CMAKE_CXX_FLAGS "${MPI_CXX_COMPILE_FLAGS}")
   ADD_FLAGS(DEAL_II_LINKER_FLAGS "${MPI_CXX_LINK_FLAGS}")
 
-  LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${MPI_CXX_LIBRARIES})
+  DEAL_II_APPEND_LIBRARIES(${MPI_CXX_LIBRARIES})
   INCLUDE_DIRECTORIES(${MPI_CXX_INCLUDE_PATH})
 
   # The user has to know the location of the mpi headers as well:
index d43fd3ea49d29f30041d3927e594672fca95be35..e6ddef4076d247e70d8fd220ec643221459ab5a2 100644 (file)
@@ -153,7 +153,7 @@ ENDMACRO()
 MACRO(FEATURE_THREADS_CONFIGURE_EXTERNAL)
   INCLUDE_DIRECTORIES(${TBB_INCLUDE_DIR})
 
-  SPLIT_DEBUG_RELEASE(_tbb_debug _tbb_release ${TBB_LIBRARIES})
+  DEAL_II_APPEND_LIBRARIES(${TBB_LIBRARIES})
 
   IF(CMAKE_BUILD_TYPE MATCHES "Debug")
     IF(TBB_WITH_DEBUG_LIB)
@@ -162,12 +162,8 @@ MACRO(FEATURE_THREADS_CONFIGURE_EXTERNAL)
         )
     ENDIF()
 
-    LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES_DEBUG ${_tbb_debug})
   ENDIF()
 
-  IF(CMAKE_BUILD_TYPE MATCHES "Release")
-    LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES_RELEASE ${_tbb_release})
-  ENDIF()
 
   SETUP_THREADING()
 ENDMACRO()
@@ -200,7 +196,7 @@ MACRO(FEATURE_THREADS_CONFIGURE_BUNDLED)
   FIND_LIBRARY(dl_LIBRARY NAMES dl)
   MARK_AS_ADVANCED(dl_LIBRARY)
   IF(NOT dl_LIBRARY MATCHES "-NOTFOUND")
-    LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${dl_LIBRARY})
+    DEAL_II_APPEND_LIBRARIES(${dl_LIBRARY})
   ENDIF()
 
   INCLUDE_DIRECTORIES(${TBB_FOLDER}/include)
index a78757796a2f85a0da8c64ce3d9a471848b2d14c..77e5c320ccc13191ffb7f8ac3a5e891fe808915a 100644 (file)
@@ -115,7 +115,7 @@ MACRO(FEATURE_PETSC_CONFIGURE_EXTERNAL)
   # The user has to know the location of the petsc headers as well:
   LIST(APPEND DEAL_II_USER_INCLUDE_DIRS ${PETSC_INCLUDE_DIRS})
 
-  LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${PETSC_LIBRARIES})
+  DEAL_II_APPEND_LIBRARIES(${PETSC_LIBRARIES})
 
   #
   # Disable a bunch of warnings when compiling with petsc:
index 3669492796fab047a6afeb9114f7110b639c31f3..8b8ce3aee23c686814ddcdcdfbaf102f391e9f0c 100644 (file)
@@ -191,7 +191,7 @@ MACRO(FEATURE_TRILINOS_CONFIGURE_EXTERNAL)
   # The user has to know the location of the trilinos headers as well:
   LIST(APPEND DEAL_II_USER_INCLUDE_DIRS ${TRILINOS_INCLUDE_DIRS})
 
-  LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${TRILINOS_LIBRARIES})
+  DEAL_II_APPEND_LIBRARIES(${TRILINOS_LIBRARIES})
 
   SET(DEAL_II_EXPAND_TRILINOS_VECTOR "TrilinosWrappers::Vector")
   SET(DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR "TrilinosWrappers::BlockVector")
index 7b8ee48ed0b79b0081f7e93a441bb80c38bdcedf..b6ed7c3b2c825145d13c486eab977e4ed31e5900 100644 (file)
@@ -26,7 +26,7 @@
 IF(NOT FEATURE_THREADS_PROCESSED)
   MESSAGE(FATAL_ERROR "\n"
     "Internal build system error:\n"
-    "configure_boost.cmake included before configure_tbb.cmake\n\n"
+    "configure_boost.cmake included before configure_1_threads.cmake\n\n"
     )
 ENDIF()
 
@@ -108,19 +108,8 @@ MACRO(FEATURE_BOOST_CONFIGURE_EXTERNAL)
   #
   LIST(REMOVE_ITEM Boost_LIBRARIES "pthread")
 
-  #
-  # Transform  Boost_LIBRARIES into a list of debug and release libraries
-  # without keywords:
-  #
-  SPLIT_DEBUG_RELEASE(_boost_debug _boost_release ${Boost_LIBRARIES})
+  DEAL_II_APPEND_LIBRARIES(${Boost_LIBRARIES})
 
-  IF (CMAKE_BUILD_TYPE MATCHES "Debug")
-    LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES_DEBUG ${_boost_debug})
-  ENDIF()
-
-  IF (CMAKE_BUILD_TYPE MATCHES "Release")
-    LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES_RELEASE ${_boost_release})
-  ENDIF()
 ENDMACRO()
 
 
index f4a9a27446f7b43bba9ec0848dfd54b85458ab99..0739098602b54007e33dd76d6d314d46cf8be00c 100644 (file)
@@ -26,7 +26,7 @@ MACRO(FEATURE_MUMPS_CONFIGURE_EXTERNAL)
   # The user has to know the location of the MUMPS headers as well:
   LIST(APPEND DEAL_II_USER_INCLUDE_DIRS ${MUMPS_INCLUDE_DIRS})
 
-  LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${MUMPS_LIBRARIES})
+  DEAL_II_APPEND_LIBRARIES(${MUMPS_LIBRARIES})
 ENDMACRO()
 
 CONFIGURE_FEATURE(MUMPS)
index 3773a88b12576ec6de4b7591aace8ba199ed435c..156d5b28b3b396775f49c8ba3d48e1d7fde8acad 100644 (file)
@@ -55,7 +55,7 @@ MACRO(FEATURE_P4EST_CONFIGURE_EXTERNAL)
   # The user has to know the location of the P4EST headers as well:
   LIST(APPEND DEAL_II_USER_INCLUDE_DIRS ${P4EST_INCLUDE_DIRS})
 
-  LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${P4EST_LIBRARIES})
+  DEAL_II_APPEND_LIBRARIES(${P4EST_LIBRARIES})
 ENDMACRO()
 
 CONFIGURE_FEATURE(P4EST)
index c0d1b212b0b6fe3865a1147d614a9b5a7fc0a857..3a4d42624a99de0de13548e5cc2c70f6a9b721ac 100644 (file)
@@ -62,7 +62,7 @@ MACRO(FEATURE_SLEPC_CONFIGURE_EXTERNAL)
   # The user has to know the location of the SLEPC headers as well:
   LIST(APPEND DEAL_II_USER_INCLUDE_DIRS ${SLEPC_INCLUDE_DIRS})
 
-  LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${SLEPC_LIBRARIES})
+  DEAL_II_APPEND_LIBRARIES(${SLEPC_LIBRARIES})
 ENDMACRO()
 
 
index 0ae79de3c0543b01f308a85d8210b13956c4f206..0ffbf4fb10481bbfaadd20c92dcd677187e1583f 100644 (file)
@@ -142,7 +142,7 @@ MACRO(FEATURE_CONFIGURE_EXTERNAL _feature)
     INCLUDE_DIRECTORIES(${${_feature}_INCLUDE_DIRS})
   ENDIF()
   IF(DEFINED ${_feature}_LIBRARIES)
-    LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${${_feature}_LIBRARIES})
+    DEAL_II_APPEND_LIBRARIES(${${_feature}_LIBRARIES})
   ENDIF()
   IF(DEFINED ${_feature}_LINKER_FLAGS)
     ADD_FLAGS(DEAL_II_LINKER_FLAGS "${${_feature}_LINKER_FLAGS}")
diff --git a/deal.II/cmake/macros/macro_deal_ii_append_libraries.cmake b/deal.II/cmake/macros/macro_deal_ii_append_libraries.cmake
new file mode 100644 (file)
index 0000000..de291d3
--- /dev/null
@@ -0,0 +1,47 @@
+## ---------------------------------------------------------------------
+## $Id$
+##
+## Copyright (C) 2013 by the deal.II authors
+##
+## This file is part of the deal.II library.
+##
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
+##
+## ---------------------------------------------------------------------
+
+#
+# A small macro to add libraries to
+#   DEAL_II_EXTERNAL_LIBRARIES
+#   DEAL_II_EXTERNAL_LIBRARIES_DEBUG
+#   DEAL_II_EXTERNAL_LIBRARIES_RELEASE
+# depending on the "optmized", "debug" or "general" keyword
+#
+# Usage:
+#   DEAL_II_APPEND_LIBRARIES(<list of libraries>)
+#
+
+MACRO(DEAL_II_APPEND_LIBRARIES)
+
+  SET(_toggle "general")
+  FOREACH(_tmp ${ARGN})
+    IF( "${_tmp}" STREQUAL "debug" OR
+        "${_tmp}" STREQUAL "optimized" OR
+        "${_tmp}" STREQUAL "general" )
+      SET(_toggle "${_tmp}")
+    ELSE()
+      IF("${_toggle}" STREQUAL "general")
+        LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${_tmp})
+      ELSEIF("${_toggle}" STREQUAL "debug")
+        LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES_DEBUG ${_tmp})
+      ELSEIF("${_toggle}" STREQUAL "optimized")
+        LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES_RELEASE ${_tmp})
+      ENDIF()
+    ENDIF()
+  ENDFOREACH()
+
+ENDMACRO()
index 96c55ff3db97a9774b5796a2ac07f6eda84f7542..bab0c9796ee1bd338f8534ff0a310d9ee4ae761e 100644 (file)
@@ -85,8 +85,8 @@ FOREACH(build ${DEAL_II_BUILD_TYPES})
     )
 
   TARGET_LINK_LIBRARIES(${DEAL_II_BASE_NAME}${DEAL_II_${build}_SUFFIX}
-    ${DEAL_II_EXTERNAL_LIBRARIES}
     ${DEAL_II_EXTERNAL_LIBRARIES_${build}}
+    ${DEAL_II_EXTERNAL_LIBRARIES}
     )
 
   INSTALL(TARGETS ${DEAL_II_BASE_NAME}${DEAL_II_${build}_SUFFIX}

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.