From f74adb665584fd5ac616a53f32686e5a3449635b Mon Sep 17 00:00:00 2001 From: maier Date: Mon, 24 Sep 2012 19:38:02 +0000 Subject: [PATCH] Make Wolfgang happy #5 git-svn-id: https://svn.dealii.org/branches/branch_cmake@26681 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/cmake/configure/configure_1_tbb.cmake | 4 - deal.II/cmake/configure/configure_boost.cmake | 8 -- .../cmake/configure/configure_umfpack.cmake | 14 +-- .../macros/macro_deal_ii_add_c_library.cmake | 51 +++++++++ .../macro_deal_ii_add_definitions.cmake | 23 ++++ .../macros/macro_deal_ii_add_library.cmake | 13 +++ .../libs/serialization/src/CMakeLists.txt | 2 +- .../libs/thread/src/CMakeLists.txt | 12 +- deal.II/contrib/functionparser/CMakeLists.txt | 2 +- .../tbb/tbb30_104oss/src/CMakeLists.txt | 20 +--- .../contrib/umfpack/AMD/Source/CMakeLists.txt | 10 +- .../umfpack/UMFPACK/Source/CMakeLists.txt | 98 +++++++--------- deal.II/source/CMakeLists.txt | 106 +++++++++++------- 13 files changed, 212 insertions(+), 151 deletions(-) create mode 100644 deal.II/cmake/macros/macro_deal_ii_add_c_library.cmake create mode 100644 deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake diff --git a/deal.II/cmake/configure/configure_1_tbb.cmake b/deal.II/cmake/configure/configure_1_tbb.cmake index e91e4804a8..1216f2aadb 100644 --- a/deal.II/cmake/configure/configure_1_tbb.cmake +++ b/deal.II/cmake/configure/configure_1_tbb.cmake @@ -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 - $ - ) - ENDMACRO() diff --git a/deal.II/cmake/configure/configure_boost.cmake b/deal.II/cmake/configure/configure_boost.cmake index c395bcd0b1..21fa1ff143 100644 --- a/deal.II/cmake/configure/configure_boost.cmake +++ b/deal.II/cmake/configure/configure_boost.cmake @@ -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 - $ - ) - 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 - $ - ) ENDIF() SET(${var} TRUE) diff --git a/deal.II/cmake/configure/configure_umfpack.cmake b/deal.II/cmake/configure/configure_umfpack.cmake index 563ca12681..24e7e9e225 100644 --- a/deal.II/cmake/configure/configure_umfpack.cmake +++ b/deal.II/cmake/configure/configure_umfpack.cmake @@ -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} - $ - $ - $ - ) - 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 index 0000000000..613fc1c3eb --- /dev/null +++ b/deal.II/cmake/macros/macro_deal_ii_add_c_library.cmake @@ -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} + $ + 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} + $ + 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 index 0000000000..d01210b5eb --- /dev/null +++ b/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake @@ -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() + diff --git a/deal.II/cmake/macros/macro_deal_ii_add_library.cmake b/deal.II/cmake/macros/macro_deal_ii_add_library.cmake index 3f8cdbc562..919bbd8e7d 100644 --- a/deal.II/cmake/macros/macro_deal_ii_add_library.cmake +++ b/deal.II/cmake/macros/macro_deal_ii_add_library.cmake @@ -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} + $ + 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} + $ + PARENT_SCOPE + ) ENDIF() ENDMACRO() diff --git a/deal.II/contrib/boost-1.49.0/libs/serialization/src/CMakeLists.txt b/deal.II/contrib/boost-1.49.0/libs/serialization/src/CMakeLists.txt index 3577a72f89..9c290dcc66 100644 --- a/deal.II/contrib/boost-1.49.0/libs/serialization/src/CMakeLists.txt +++ b/deal.II/contrib/boost-1.49.0/libs/serialization/src/CMakeLists.txt @@ -30,4 +30,4 @@ SET(src_boost_serialization shared_ptr_helper.cpp ) -ADD_LIBRARY(obj_boost_serialization OBJECT ${src_boost_serialization}) +DEAL_II_ADD_LIBRARY(obj_boost_serialization OBJECT ${src_boost_serialization}) diff --git a/deal.II/contrib/boost-1.49.0/libs/thread/src/CMakeLists.txt b/deal.II/contrib/boost-1.49.0/libs/thread/src/CMakeLists.txt index 36ffb205ee..5a180717f2 100644 --- a/deal.II/contrib/boost-1.49.0/libs/thread/src/CMakeLists.txt +++ b/deal.II/contrib/boost-1.49.0/libs/thread/src/CMakeLists.txt @@ -10,7 +10,7 @@ ELSE() ) ENDIF() -ADD_LIBRARY(obj_boost_thread OBJECT ${src_boost_thread}) +DEAL_II_ADD_LIBRARY(obj_boost_thread OBJECT ${src_boost_thread}) IF(DEAL_II_USE_MT_POSIX) @@ -21,13 +21,11 @@ IF(DEAL_II_USE_MT_POSIX) # define UINTMAX_C(x) x ## ULL # endif - SET_TARGET_PROPERTIES(obj_boost_thread PROPERTIES - COMPILE_FLAGS - "-DBOOST_THREAD_BUILD_LIB -DBOOST_ALL_NO_LIB" + DEAL_II_ADD_DEFINITIONS(obj_boost_thread + "BOOST_THREAD_BUILD_LIB" "BOOST_ALL_NO_LIB" ) ELSE() - SET_TARGET_PROPERTIES(obj_boost_thread PROPERTIES - COMPILE_FLAGS - "-DBOOST_THREAD_BUILD_LIB -DBOOST_ALL_NO_LIB -DBOOST_THREAD_POSIX" + DEAL_II_ADD_DEFINITIONS(obj_boost_thread + "BOOST_THREAD_BUILD_LIB" "BOOST_ALL_NO_LIB" "BOOST_THREAD_POSIX" ) ENDIF() diff --git a/deal.II/contrib/functionparser/CMakeLists.txt b/deal.II/contrib/functionparser/CMakeLists.txt index 6e1db2c67d..f6997c24d4 100644 --- a/deal.II/contrib/functionparser/CMakeLists.txt +++ b/deal.II/contrib/functionparser/CMakeLists.txt @@ -1 +1 @@ -ADD_LIBRARY(obj_functionparser OBJECT "fparser.cc") +DEAL_II_ADD_LIBRARY(obj_functionparser OBJECT "fparser.cc") diff --git a/deal.II/contrib/tbb/tbb30_104oss/src/CMakeLists.txt b/deal.II/contrib/tbb/tbb30_104oss/src/CMakeLists.txt index 2cf4b27877..bd0942b61e 100644 --- a/deal.II/contrib/tbb/tbb30_104oss/src/CMakeLists.txt +++ b/deal.II/contrib/tbb/tbb30_104oss/src/CMakeLists.txt @@ -46,31 +46,23 @@ SET(src_tbb tbb/tbb_thread.cpp ) -ADD_LIBRARY(obj_tbb OBJECT ${src_tbb}) - - -# -# For debug build -DTBB_USE_DEBUG and -DTBB_DO_ASSERT=1 will be defined -# globally by the configure script specified. -# +DEAL_II_ADD_LIBRARY(obj_tbb OBJECT ${src_tbb}) # # Add necessary definitions: # +SET(obj_tbb_DEFINITIONS) IF(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") - ADD_FLAGS(obj_tbb_COMPILE_FLAGS "-DDO_ITT_NOTIFY") + LIST(APPEND obj_tbb_DEFINITIONS "DO_ITT_NOTIFY") ENDIF() IF(DEAL_II_USE_MT_POSIX) - ADD_FLAGS(obj_tbb_COMPILE_FLAGS "-DUSE_PTHREAD") + LIST(APPEND obj_tbb_DEFINITIONS "USE_PTHREAD") ENDIF() IF(CMAKE_SYSTEM_NAME MATCHES "Windows") - ADD_FLAGS(obj_tbb_COMPILE_FLAGS "-DUSE_WINTHREAD") + LIST(APPEND obj_tbb_DEFINITIONS "-DUSE_WINTHREAD") ENDIF() -SET_TARGET_PROPERTIES(obj_tbb PROPERTIES - COMPILE_FLAGS ${obj_tbb_COMPILE_FLAGS} - ) - +DEAL_II_ADD_DEFINITIONS(obj_tbb ${obj_tbb_DEFINITIONS}) diff --git a/deal.II/contrib/umfpack/AMD/Source/CMakeLists.txt b/deal.II/contrib/umfpack/AMD/Source/CMakeLists.txt index 48e90d6bdd..cadcc17e85 100644 --- a/deal.II/contrib/umfpack/AMD/Source/CMakeLists.txt +++ b/deal.II/contrib/umfpack/AMD/Source/CMakeLists.txt @@ -14,10 +14,10 @@ SET(src_amd ) -ADD_LIBRARY(obj_amd_int OBJECT ${src_amd}) -SET_TARGET_PROPERTIES(obj_amd_int PROPERTIES COMPILE_FLAGS "-DDINT") +DEAL_II_ADD_C_LIBRARY(obj_amd_int OBJECT ${src_amd}) +DEAL_II_ADD_DEFINITIONS(obj_amd_int "DINT") -ADD_LIBRARY(obj_amd_long OBJECT ${src_amd}) -SET_TARGET_PROPERTIES(obj_amd_long PROPERTIES COMPILE_FLAGS "-DDLONG") +DEAL_II_ADD_C_LIBRARY(obj_amd_long OBJECT ${src_amd}) +DEAL_II_ADD_DEFINITIONS(obj_amd_long "DLONG") -ADD_LIBRARY(obj_amd_global OBJECT "amd_global.c") +DEAL_II_ADD_C_LIBRARY(obj_amd_global OBJECT "amd_global.c") diff --git a/deal.II/contrib/umfpack/UMFPACK/Source/CMakeLists.txt b/deal.II/contrib/umfpack/UMFPACK/Source/CMakeLists.txt index af958d2eac..75713ae4ac 100644 --- a/deal.II/contrib/umfpack/UMFPACK/Source/CMakeLists.txt +++ b/deal.II/contrib/umfpack/UMFPACK/Source/CMakeLists.txt @@ -94,93 +94,71 @@ SET(src_umfpack_UMFPACK # compile each int and long routine (with no real/complex version) #------------------------------------------------------------------------------- -ADD_LIBRARY(obj_umfpack_I_UMF OBJECT ${src_umfpack_UMF}) -SET_TARGET_PROPERTIES(obj_umfpack_I_UMF PROPERTIES COMPILE_FLAGS "-DDINT") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_I_UMF OBJECT ${src_umfpack_UMF}) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_I_UMF "DINT") -ADD_LIBRARY(obj_umfpack_L_UMF OBJECT ${src_umfpack_UMF}) -SET_TARGET_PROPERTIES(obj_umfpack_L_UMF PROPERTIES COMPILE_FLAGS "-DDLONG") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_L_UMF OBJECT ${src_umfpack_UMF}) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_L_UMF "DLONG") -ADD_LIBRARY(obj_umfpack_I_UMFPACK OBJECT ${src_umfpack_UMFPACK}) -SET_TARGET_PROPERTIES(obj_umfpack_I_UMFPACK PROPERTIES COMPILE_FLAGS "-DDINT") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_I_UMFPACK OBJECT ${src_umfpack_UMFPACK}) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_I_UMFPACK "DINT") -ADD_LIBRARY(obj_umfpack_L_UMFPACK OBJECT ${src_umfpack_UMFPACK}) -SET_TARGET_PROPERTIES(obj_umfpack_L_UMFPACK PROPERTIES COMPILE_FLAGS "-DDLONG") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_L_UMFPACK OBJECT ${src_umfpack_UMFPACK}) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_L_UMFPACK "DLONG") #------------------------------------------------------------------------------- # compile each routine in the DI version #------------------------------------------------------------------------------- -ADD_LIBRARY(obj_umfpack_DI_TSOLVE OBJECT umf_ltsolve.c umf_utsolve.c) -SET_TARGET_PROPERTIES(obj_umfpack_DI_TSOLVE PROPERTIES COMPILE_FLAGS "-DDINT -DCONJUGATE_SOLVE") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DI_TSOLVE OBJECT umf_ltsolve.c umf_utsolve.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DI_TSOLVE "DINT" "CONJUGATE_SOLVE") -ADD_LIBRARY(obj_umfpack_DI_TRIPLET_MAP_NOX OBJECT umf_triplet.c) -SET_TARGET_PROPERTIES(obj_umfpack_DI_TRIPLET_MAP_NOX PROPERTIES COMPILE_FLAGS "-DDINT -DDO_MAP") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DI_TRIPLET_MAP_NOX OBJECT umf_triplet.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DI_TRIPLET_MAP_NOX "DINT" "DO_MAP") -ADD_LIBRARY(obj_umfpack_DI_TRIPLET_MAP_X OBJECT umf_triplet.c) -SET_TARGET_PROPERTIES(obj_umfpack_DI_TRIPLET_MAP_X PROPERTIES COMPILE_FLAGS "-DDINT -DDO_MAP -DDO_VALUES") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DI_TRIPLET_MAP_X OBJECT umf_triplet.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DI_TRIPLET_MAP_X "DINT" "DO_MAP" "DO_VALUES") -ADD_LIBRARY(obj_umfpack_DI_TRIPLET_NOMAP_X OBJECT umf_triplet.c) -SET_TARGET_PROPERTIES(obj_umfpack_DI_TRIPLET_NOMAP_X PROPERTIES COMPILE_FLAGS "-DDINT -DDO_VALUES") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DI_TRIPLET_NOMAP_X OBJECT umf_triplet.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DI_TRIPLET_NOMAP_X "DINT" "DO_VALUES") -ADD_LIBRARY(obj_umfpack_DI_STORE OBJECT umf_store_lu.c) -SET_TARGET_PROPERTIES(obj_umfpack_DI_STORE PROPERTIES COMPILE_FLAGS "-DDINT -DDROP") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DI_STORE OBJECT umf_store_lu.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DI_STORE "DINT" "DROP") -ADD_LIBRARY(obj_umfpack_DI_ASSEMBLE OBJECT umf_assemble.c) -SET_TARGET_PROPERTIES(obj_umfpack_DI_ASSEMBLE PROPERTIES COMPILE_FLAGS "-DDINT -DFIXQ") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DI_ASSEMBLE OBJECT umf_assemble.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DI_ASSEMBLE "DINT" "FIXQ") -ADD_LIBRARY(obj_umfpack_DI_SOLVE OBJECT umfpack_solve.c) -SET_TARGET_PROPERTIES(obj_umfpack_DI_SOLVE PROPERTIES COMPILE_FLAGS "-DDINT -DWSOLVE") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DI_SOLVE OBJECT umfpack_solve.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DI_SOLVE "DINT" "WSOLVE") #------------------------------------------------------------------------------- # compile each routine in the DL version #------------------------------------------------------------------------------- -ADD_LIBRARY(obj_umfpack_DL_TSOLVE OBJECT umf_ltsolve.c umf_utsolve.c) -SET_TARGET_PROPERTIES(obj_umfpack_DL_TSOLVE PROPERTIES COMPILE_FLAGS "-DDLONG -DCONJUGATE_SOLVE") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DL_TSOLVE OBJECT umf_ltsolve.c umf_utsolve.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DL_TSOLVE "DLONG" "CONJUGATE_SOLVE") -ADD_LIBRARY(obj_umfpack_DL_TRIPLET_MAP_NOX OBJECT umf_triplet.c) -SET_TARGET_PROPERTIES(obj_umfpack_DL_TRIPLET_MAP_NOX PROPERTIES COMPILE_FLAGS "-DDLONG -DDO_MAP") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DL_TRIPLET_MAP_NOX OBJECT umf_triplet.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DL_TRIPLET_MAP_NOX "DLONG" "DO_MAP") -ADD_LIBRARY(obj_umfpack_DL_TRIPLET_MAP_X OBJECT umf_triplet.c) -SET_TARGET_PROPERTIES(obj_umfpack_DL_TRIPLET_MAP_X PROPERTIES COMPILE_FLAGS "-DDLONG -DDO_MAP -DDO_VALUES") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DL_TRIPLET_MAP_X OBJECT umf_triplet.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DL_TRIPLET_MAP_X "DLONG" "DO_MAP" "DO_VALUES") -ADD_LIBRARY(obj_umfpack_DL_TRIPLET_NOMAP_X OBJECT umf_triplet.c) -SET_TARGET_PROPERTIES(obj_umfpack_DL_TRIPLET_NOMAP_X PROPERTIES COMPILE_FLAGS "-DDLONG -DDO_VALUES") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DL_TRIPLET_NOMAP_X OBJECT umf_triplet.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DL_TRIPLET_NOMAP_X "DLONG" "DO_VALUES") -ADD_LIBRARY(obj_umfpack_DL_STORE OBJECT umf_store_lu.c) -SET_TARGET_PROPERTIES(obj_umfpack_DL_STORE PROPERTIES COMPILE_FLAGS "-DDLONG -DDROP") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DL_STORE OBJECT umf_store_lu.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DL_STORE "DLONG" "DROP") -ADD_LIBRARY(obj_umfpack_DL_ASSEMBLE OBJECT umf_assemble.c) -SET_TARGET_PROPERTIES(obj_umfpack_DL_ASSEMBLE PROPERTIES COMPILE_FLAGS "-DDLONG -DFIXQ") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DL_ASSEMBLE OBJECT umf_assemble.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DL_ASSEMBLE "DLONG" "FIXQ") -ADD_LIBRARY(obj_umfpack_DL_SOLVE OBJECT umfpack_solve.c) -SET_TARGET_PROPERTIES(obj_umfpack_DL_SOLVE PROPERTIES COMPILE_FLAGS "-DDLONG -DWSOLVE") +DEAL_II_ADD_C_LIBRARY(obj_umfpack_DL_SOLVE OBJECT umfpack_solve.c) +DEAL_II_ADD_DEFINITIONS(obj_umfpack_DL_SOLVE "DLONG" "WSOLVE") #------------------------------------------------------------------------------- # Create the generic routines (GN) using a generic rule #------------------------------------------------------------------------------- -ADD_LIBRARY(obj_umfpack_GENERIC OBJECT ${src_umfpack_UMFPACK}) - - -SET(obj_umfpack_object_files - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - $ - ) +DEAL_II_ADD_C_LIBRARY(obj_umfpack_GENERIC OBJECT ${src_umfpack_UMFPACK}) + diff --git a/deal.II/source/CMakeLists.txt b/deal.II/source/CMakeLists.txt index 66c8fb3322..5ecfd244e8 100644 --- a/deal.II/source/CMakeLists.txt +++ b/deal.II/source/CMakeLists.txt @@ -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} - $ - $ - $ - $ - $ - $ - $ - $ - $ - - # 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() -- 2.39.5