]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Make Wolfgang happy #5
authorMatthias Maier <tamiko@kyomu.43-1.org>
Mon, 24 Sep 2012 19:38:02 +0000 (19:38 +0000)
committerMatthias Maier <tamiko@kyomu.43-1.org>
Mon, 24 Sep 2012 19:38:02 +0000 (19:38 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_cmake@26681 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/cmake/configure/configure_1_tbb.cmake
deal.II/cmake/configure/configure_boost.cmake
deal.II/cmake/configure/configure_umfpack.cmake
deal.II/cmake/macros/macro_deal_ii_add_c_library.cmake [new file with mode: 0644]
deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake [new file with mode: 0644]
deal.II/cmake/macros/macro_deal_ii_add_library.cmake
deal.II/contrib/functionparser/CMakeLists.txt
deal.II/source/CMakeLists.txt

index e91e4804a8d338fe46d442add4a1160b87e3bddf..1216f2aadbcc75aa54b8aec50e7bf41401498170 100644 (file)
@@ -157,10 +157,6 @@ MACRO(FEATURE_TBB_CONFIGURE_CONTRIB var)
 
   ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/contrib/tbb/tbb30_104oss/src)
 
-  LIST(APPEND deal_ii_additional_object_files
-    $<TARGET_OBJECTS:obj_tbb>
-    )
-
 ENDMACRO()
 
 
index c395bcd0b12ad01400ace764083bc5793f468237..21fa1ff1432b4803226b9d36058a6d663210fa11 100644 (file)
@@ -75,10 +75,6 @@ MACRO(FEATURE_BOOST_CONFIGURE_CONTRIB var)
     ${CMAKE_SOURCE_DIR}/contrib/boost-1.49.0/libs/serialization/src
     )
 
-  LIST(APPEND deal_ii_additional_object_files
-    $<TARGET_OBJECTS:obj_boost_serialization>
-    )
-
   IF( DEAL_II_USE_MT AND NOT DEAL_II_CAN_USE_CXX11)
     #
     # If the C++ compiler doesn't completely support the C++11 standard
@@ -90,10 +86,6 @@ MACRO(FEATURE_BOOST_CONFIGURE_CONTRIB var)
     ADD_SUBDIRECTORY(
       ${CMAKE_SOURCE_DIR}/contrib/boost-1.49.0/libs/thread/src
       )
-
-    LIST(APPEND deal_ii_additional_object_files
-      $<TARGET_OBJECTS:obj_boost_thread>
-      )
   ENDIF()
 
   SET(${var} TRUE)
index 563ca126815bbd5e22a7d4acae44fe0f5e621406..24e7e9e225387b3f6bb25c2d278a6494eaf10d31 100644 (file)
@@ -36,6 +36,10 @@ SET(FEATURE_UMFPACK_HAVE_CONTRIB TRUE)
 
 
 MACRO(FEATURE_UMFPACK_CONFIGURE_CONTRIB var)
+  #
+  # Add umfpack and amd directly to the object files of deal.II
+  #
+
   INCLUDE_DIRECTORIES(
     ${CMAKE_SOURCE_DIR}/contrib/umfpack/UMFPACK/Include
     ${CMAKE_SOURCE_DIR}/contrib/umfpack/AMD/Include
@@ -44,16 +48,6 @@ MACRO(FEATURE_UMFPACK_CONFIGURE_CONTRIB var)
   ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/contrib/umfpack/UMFPACK/Source)
   ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/contrib/umfpack/AMD/Source)
 
-  #
-  # Add umfpack and amd directly to the object files of deal.II
-  #
-  LIST(APPEND deal_ii_additional_object_files
-    ${obj_umfpack_object_files}
-    $<TARGET_OBJECTS:obj_amd_int>
-    $<TARGET_OBJECTS:obj_amd_long>
-    $<TARGET_OBJECTS:obj_amd_global>
-    )
-
   SET(HAVE_LIBUMFPACK TRUE)
 
   SET(${var} TRUE)
diff --git a/deal.II/cmake/macros/macro_deal_ii_add_c_library.cmake b/deal.II/cmake/macros/macro_deal_ii_add_c_library.cmake
new file mode 100644 (file)
index 0000000..613fc1c
--- /dev/null
@@ -0,0 +1,51 @@
+
+#
+# TODO: A comment
+#
+
+MACRO(DEAL_II_ADD_C_LIBRARY name)
+
+  IF(CMAKE_BUILD_TYPE MATCHES "Debug")
+    #
+    # and a debug target
+    #
+    ADD_LIBRARY(${name}.g
+      ${ARGN}
+      )
+
+    SET_TARGET_PROPERTIES(${name}.g PROPERTIES
+      LINK_FLAGS "${DEAL_II_SHARED_LINKER_FLAGS_DEBUG}"
+      COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS};${DEAL_II_DEFINITIONS_DEBUG}"
+      COMPILE_FLAGS "${DEAL_II_C_FLAGS_DEBUG}"
+      )
+
+    SET(deal_ii_objects.g
+      ${deal_ii_objects.g}
+      $<TARGET_OBJECTS:${name}.g>
+      PARENT_SCOPE
+      )
+
+  ENDIF()
+
+  IF(CMAKE_BUILD_TYPE MATCHES "Release")
+    #
+    # Add a release target
+    #
+    ADD_LIBRARY(${name}
+      ${ARGN}
+      )
+
+    SET_TARGET_PROPERTIES(${name} PROPERTIES
+      LINK_FLAGS "${DEAL_II_SHARED_LINKER_FLAGS_RELEASE}"
+      COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS};${DEAL_II_DEFINITIONS_RELEASE}"
+      COMPILE_FLAGS "${DEAL_II_C_FLAGS_RELEASE}"
+      )
+
+    SET(deal_ii_objects
+      ${deal_ii_objects}
+      $<TARGET_OBJECTS:${name}>
+      PARENT_SCOPE
+      )
+  ENDIF()
+
+ENDMACRO()
diff --git a/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake b/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake
new file mode 100644 (file)
index 0000000..d01210b
--- /dev/null
@@ -0,0 +1,23 @@
+
+#
+# TODO: A comment
+#
+
+MACRO(DEAL_II_ADD_DEFINITIONS name)
+
+  IF(CMAKE_BUILD_TYPE MATCHES "Debug")
+    GET_TARGET_PROPERTY(macro_definitions ${name}.g COMPILE_DEFINITIONS)
+    SET_TARGET_PROPERTIES(${name}.g PROPERTIES
+      COMPILE_DEFINITIONS "${ARGN};${macro_definitions}"
+      )
+  ENDIF()
+
+  IF(CMAKE_BUILD_TYPE MATCHES "Release")
+    GET_TARGET_PROPERTY(macro_definitions ${name} COMPILE_DEFINITIONS)
+    SET_TARGET_PROPERTIES(${name} PROPERTIES
+      COMPILE_DEFINITIONS "${ARGN};${macro_definitions}"
+      )
+  ENDIF()
+
+ENDMACRO()
+
index 3f8cdbc562e41363c87e0ca6a808ede630dab00c..919bbd8e7db937e89e83fbc21a5c7c1ad88057d3 100644 (file)
@@ -18,6 +18,13 @@ MACRO(DEAL_II_ADD_LIBRARY name)
       COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS};${DEAL_II_DEFINITIONS_DEBUG}"
       COMPILE_FLAGS "${DEAL_II_CXX_FLAGS_DEBUG}"
       )
+
+    SET(deal_ii_objects.g
+      ${deal_ii_objects.g}
+      $<TARGET_OBJECTS:${name}.g>
+      PARENT_SCOPE
+      )
+
   ENDIF()
 
   IF(CMAKE_BUILD_TYPE MATCHES "Release")
@@ -33,6 +40,12 @@ MACRO(DEAL_II_ADD_LIBRARY name)
       COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS};${DEAL_II_DEFINITIONS_RELEASE}"
       COMPILE_FLAGS "${DEAL_II_CXX_FLAGS_RELEASE}"
       )
+
+    SET(deal_ii_objects
+      ${deal_ii_objects}
+      $<TARGET_OBJECTS:${name}>
+      PARENT_SCOPE
+      )
   ENDIF()
 
 ENDMACRO()
index 6e1db2c67de67143ca458b0f1192842e1f886fef..f6997c24d44bb32863c06e7e0f18d9cdc5787e13 100644 (file)
@@ -1 +1 @@
-ADD_LIBRARY(obj_functionparser OBJECT "fparser.cc")
+DEAL_II_ADD_LIBRARY(obj_functionparser OBJECT "fparser.cc")
index 66c8fb3322fc498367bf1b832bb19853505b397d..5ecfd244e82a689beba842381b2d2880466f14fe 100644 (file)
@@ -7,9 +7,6 @@ INCLUDE_DIRECTORIES(
   ${CMAKE_BINARY_DIR}/include/
   )
 
-#
-# Each subdirectory specifies an OBJECT target:
-#
 ADD_SUBDIRECTORY(base)
 ADD_SUBDIRECTORY(distributed)
 ADD_SUBDIRECTORY(dofs)
@@ -20,47 +17,74 @@ ADD_SUBDIRECTORY(lac)
 ADD_SUBDIRECTORY(multigrid)
 ADD_SUBDIRECTORY(numerics)
 
-#
-# Combine all OBJECT targets to a library:
-#
-ADD_LIBRARY(${DEAL_II_BASE_NAME}
-  $<TARGET_OBJECTS:obj_base>
-  $<TARGET_OBJECTS:obj_distributed>
-  $<TARGET_OBJECTS:obj_dofs>
-  $<TARGET_OBJECTS:obj_fe>
-  $<TARGET_OBJECTS:obj_grid>
-  $<TARGET_OBJECTS:obj_hp>
-  $<TARGET_OBJECTS:obj_lac>
-  $<TARGET_OBJECTS:obj_multigrid>
-  $<TARGET_OBJECTS:obj_numerics>
-
-  # for contrib stuff:
-  ${deal_ii_additional_object_files}
-  )
+IF(CMAKE_BUILD_TYPE MATCHES "Debug")
 
-#
-# Sonaming: Well... we just use the version number.
-# No point to wrack one's brain over the question whether a new version of
-# a C++ library is still ABI backwards compatible :-]
-#
-SET_TARGET_PROPERTIES(${DEAL_II_BASE_NAME} PROPERTIES
-  VERSION ${VERSION}
-  SOVERSION ${VERSION}
-  )
+  #
+  # Combine all debug OBJECT targets to a debug library:
+  #
+  ADD_LIBRARY(${DEAL_II_BASE_NAME}${DEAL_II_DEBUG_SUFFIX}
+    ${deal_ii_objects.g}
+    )
 
-SET_TARGET_PROPERTIES(${DEAL_II_BASE_NAME} PROPERTIES
-  LINK_FLAGS "${deal_ii_required_linker_flags}"
-  )
+  SET_TARGET_PROPERTIES(${DEAL_II_BASE_NAME}${DEAL_II_DEBUG_SUFFIX}
+    PROPERTIES
+    VERSION ${VERSION}
+    #
+    # Sonaming: Well... we just use the version number.
+    # No point to wrack one's brain over the question whether a new version of
+    # a C++ library is still ABI backwards compatible :-]
+    #
+    SOVERSION ${VERSION}
+    LINK_FLAGS "${DEAL_II_SHARED_LINKER_FLAGS_DEBUG}"
+    COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS};${DEAL_II_DEFINITIONS_DEBUG}"
+    COMPILE_FLAGS "${DEAL_II_CXX_FLAGS_DEBUG}"
+    )
 
-TARGET_LINK_LIBRARIES(${DEAL_II_BASE_NAME} ${DEAL_II_EXTERNAL_LIBRARIES})
+  TARGET_LINK_LIBRARIES(${DEAL_II_BASE_NAME}${DEAL_II_DEBUG_SUFFIX}
+    "${DEAL_II_EXTERNAL_LIBRARIES};${DEAL_II_EXTERNAL_LIBRARIES_DEBUG}"
+    )
 
+  INSTALL(TARGETS ${DEAL_II_BASE_NAME}${DEAL_II_DEBUG_SUFFIX}
+    LIBRARY
+    DESTINATION ${DEAL_II_LIBRARY_RELDIR}
+    COMPONENT library
+    )
 
-#
-# Finally, add a rule how to install the library:
-#
-INSTALL(TARGETS ${DEAL_II_BASE_NAME}
-  LIBRARY
-  DESTINATION ${DEAL_II_LIBRARY_RELDIR}
-  COMPONENT library
-  )
+ENDIF()
+
+
+IF(CMAKE_BUILD_TYPE MATCHES "Release")
+
+  #
+  # Combine all debug OBJECT targets to a debug library:
+  #
+  ADD_LIBRARY(${DEAL_II_BASE_NAME}
+    ${deal_ii_objects}
+    )
+
+  SET_TARGET_PROPERTIES(${DEAL_II_BASE_NAME}
+    PROPERTIES
+    VERSION ${VERSION}
+    #
+    # Sonaming: Well... we just use the version number.
+    # No point to wrack one's brain over the question whether a new version of
+    # a C++ library is still ABI backwards compatible :-]
+    #
+    SOVERSION ${VERSION}
+    LINK_FLAGS "${DEAL_II_SHARED_LINKER_FLAGS_RELEASE}"
+    COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS};${DEAL_II_DEFINITIONS_RELEASE}"
+    COMPILE_FLAGS "${DEAL_II_CXX_FLAGS_RELEASE}"
+    )
+
+  TARGET_LINK_LIBRARIES(${DEAL_II_BASE_NAME}
+    "${DEAL_II_EXTERNAL_LIBRARIES};${DEAL_II_EXTERNAL_LIBRARIES_RELEASE}"
+    )
+
+  INSTALL(TARGETS ${DEAL_II_BASE_NAME}
+    LIBRARY
+    DESTINATION ${DEAL_II_LIBRARY_RELDIR}
+    COMPONENT library
+    )
+
+ENDIF()
 

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.