From f2009894890959c41e45c26c89a24454af50dc94 Mon Sep 17 00:00:00 2001 From: maier Date: Mon, 24 Sep 2012 22:15:37 +0000 Subject: [PATCH] Bugfix: PARENT_SCOPE is way to buggy for this hack git-svn-id: https://svn.dealii.org/branches/branch_cmake@26693 0785d39b-7218-0410-832d-ea1e28bc413d --- .../macros/macro_deal_ii_add_c_library.cmake | 25 ++++++++----------- .../macro_deal_ii_add_definitions.cmake | 4 +-- .../macro_deal_ii_add_dependencies.cmake | 2 +- .../macros/macro_deal_ii_add_library.cmake | 25 ++++++++----------- .../macros/macro_expand_instantiations.cmake | 2 +- deal.II/source/CMakeLists.txt | 11 +++++++- 6 files changed, 36 insertions(+), 33 deletions(-) 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 index 613fc1c3eb..4101364061 100644 --- a/deal.II/cmake/macros/macro_deal_ii_add_c_library.cmake +++ b/deal.II/cmake/macros/macro_deal_ii_add_c_library.cmake @@ -3,48 +3,45 @@ # TODO: A comment # -MACRO(DEAL_II_ADD_C_LIBRARY name) +MACRO(DEAL_II_ADD_C_LIBRARY library) IF(CMAKE_BUILD_TYPE MATCHES "Debug") # # and a debug target # - ADD_LIBRARY(${name}.g + ADD_LIBRARY(${library}_debug ${ARGN} ) - SET_TARGET_PROPERTIES(${name}.g PROPERTIES + SET_TARGET_PROPERTIES(${library}_debug 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 + FILE(APPEND + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/deal_ii_objects_debug + "$\n" ) - ENDIF() IF(CMAKE_BUILD_TYPE MATCHES "Release") # # Add a release target # - ADD_LIBRARY(${name} + ADD_LIBRARY(${library} ${ARGN} ) - SET_TARGET_PROPERTIES(${name} PROPERTIES + SET_TARGET_PROPERTIES(${library} 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 + FILE(APPEND + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/deal_ii_objects + "$\n" ) ENDIF() diff --git a/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake b/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake index d01210b5eb..2320ff75f6 100644 --- a/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake +++ b/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake @@ -6,8 +6,8 @@ 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 + GET_TARGET_PROPERTY(macro_definitions ${name}_debug COMPILE_DEFINITIONS) + SET_TARGET_PROPERTIES(${name}_debug PROPERTIES COMPILE_DEFINITIONS "${ARGN};${macro_definitions}" ) ENDIF() diff --git a/deal.II/cmake/macros/macro_deal_ii_add_dependencies.cmake b/deal.II/cmake/macros/macro_deal_ii_add_dependencies.cmake index d527cb5224..e118017ef8 100644 --- a/deal.II/cmake/macros/macro_deal_ii_add_dependencies.cmake +++ b/deal.II/cmake/macros/macro_deal_ii_add_dependencies.cmake @@ -6,7 +6,7 @@ MACRO(DEAL_II_ADD_DEPENDENCIES name target) IF(CMAKE_BUILD_TYPE MATCHES "Debug") - ADD_DEPENDENCIES(${name}.g ${target}.g) + ADD_DEPENDENCIES(${name}_debug ${target}_debug) ENDIF() IF(CMAKE_BUILD_TYPE MATCHES "Release") 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 919bbd8e7d..8cf6c4dd46 100644 --- a/deal.II/cmake/macros/macro_deal_ii_add_library.cmake +++ b/deal.II/cmake/macros/macro_deal_ii_add_library.cmake @@ -3,48 +3,45 @@ # TODO: A comment # -MACRO(DEAL_II_ADD_LIBRARY name) +MACRO(DEAL_II_ADD_LIBRARY library) IF(CMAKE_BUILD_TYPE MATCHES "Debug") # # and a debug target # - ADD_LIBRARY(${name}.g + ADD_LIBRARY(${library}_debug ${ARGN} ) - SET_TARGET_PROPERTIES(${name}.g PROPERTIES + SET_TARGET_PROPERTIES(${library}_debug PROPERTIES LINK_FLAGS "${DEAL_II_SHARED_LINKER_FLAGS_DEBUG}" 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 + FILE(APPEND + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/deal_ii_objects_debug + "$\n" ) - ENDIF() IF(CMAKE_BUILD_TYPE MATCHES "Release") # # Add a release target # - ADD_LIBRARY(${name} + ADD_LIBRARY(${library} ${ARGN} ) - SET_TARGET_PROPERTIES(${name} PROPERTIES + SET_TARGET_PROPERTIES(${library} PROPERTIES LINK_FLAGS "${DEAL_II_SHARED_LINKER_FLAGS_RELEASE}" 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 + FILE(APPEND + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/deal_ii_objects + "$\n" ) ENDIF() diff --git a/deal.II/cmake/macros/macro_expand_instantiations.cmake b/deal.II/cmake/macros/macro_expand_instantiations.cmake index 3b1bcd91e0..7305d33d6a 100644 --- a/deal.II/cmake/macros/macro_expand_instantiations.cmake +++ b/deal.II/cmake/macros/macro_expand_instantiations.cmake @@ -44,7 +44,7 @@ MACRO(EXPAND_INSTANTIATIONS target inst_in_files) # before target will be processed. # IF(CMAKE_BUILD_TYPE MATCHES "Debug") - ADD_DEPENDENCIES(${target}.g ${target}.inst) + ADD_DEPENDENCIES(${target}_debug ${target}.inst) ENDIF() IF(CMAKE_BUILD_TYPE MATCHES "Release") ADD_DEPENDENCIES(${target} ${target}.inst) diff --git a/deal.II/source/CMakeLists.txt b/deal.II/source/CMakeLists.txt index 66d6d7aff9..adc1c17e3f 100644 --- a/deal.II/source/CMakeLists.txt +++ b/deal.II/source/CMakeLists.txt @@ -22,8 +22,12 @@ IF(CMAKE_BUILD_TYPE MATCHES "Debug") # # Combine all debug OBJECT targets to a debug library: # + FILE(STRINGS + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/deal_ii_objects_debug + deal_ii_objects_debug + ) ADD_LIBRARY(${DEAL_II_BASE_NAME}${DEAL_II_DEBUG_SUFFIX} - ${deal_ii_objects.g} + ${deal_ii_objects_debug} ) SET_TARGET_PROPERTIES(${DEAL_II_BASE_NAME}${DEAL_II_DEBUG_SUFFIX} @@ -59,6 +63,10 @@ IF(CMAKE_BUILD_TYPE MATCHES "Release") # # Combine all release OBJECT targets to a release library: # + FILE(STRINGS + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/deal_ii_objects + deal_ii_objects + ) ADD_LIBRARY(${DEAL_II_BASE_NAME} ${deal_ii_objects} ) @@ -90,3 +98,4 @@ IF(CMAKE_BUILD_TYPE MATCHES "Release") ENDIF() +MESSAGE("${deal_ii_objects_debug}") -- 2.39.5