aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2008-07-21 19:25:47 +0000
committerAlexander Neundorf <neundorf@kde.org>2008-07-21 19:25:47 +0000
commit24a1cc7c66f4d2137c441c4222731980d4f5892b (patch)
tree028c0aeaf4dbf5785dc24a7826a337be10abd73c
parenta3a1c93e8ebfea28aff2aa3a15c8919802e7df56 (diff)
downloadextra-cmake-modules-24a1cc7c66f4d2137c441c4222731980d4f5892b.tar.gz
extra-cmake-modules-24a1cc7c66f4d2137c441c4222731980d4f5892b.tar.bz2
-also disable _KDE4_TARGET_LINK_INTERFACE_LIBRARIES() and use the renamed LINK_INTERFACE_LIBRARIES target property instead:
set_target_properties(foo PROPERTIES ${KDE4_DISABLE_PROPERTY_}LINK_INTERFACE_LIBRARIES "kdeui;kdecore" ) While this doesn't look very nice, it is completely forward and backward compatible (i.e. cmake 2.4 doesn't complain, cmake 2.6 works, both versions work as soon as the reduced link interface is the default (soon), if somebody uses this with kdelibs which don't have that anymore he will get the reduced interface instead of errors, so all should be ok) This was discussed on kde-buildsystem end of June. Alex CCMAIL: mueller@kde.org svn path=/branches/KDE/4.1/kdelibs/; revision=836133
-rw-r--r--modules/FindKDE4Internal.cmake23
-rw-r--r--modules/KDE4Macros.cmake6
2 files changed, 24 insertions, 5 deletions
diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake
index 044bb4f3..34b67ac2 100644
--- a/modules/FindKDE4Internal.cmake
+++ b/modules/FindKDE4Internal.cmake
@@ -493,12 +493,33 @@ option(KDE4_ENABLE_FINAL "Enable final all-in-one compilation")
option(KDE4_BUILD_TESTS "Build the tests")
option(KDE4_ENABLE_HTMLHANDBOOK "Create targets htmlhandbook for creating the html versions of the docbook docs")
-# this one enables the smaller link interface for libs on UNIX (exceot OSX)
+
+# this one enables the smaller link interface for libs on UNIX
+set(KDE4_DISABLE_PROPERTY_ )
if(UNIX )# AND NOT APPLE)
option(KDE4_ENABLE_EXPERIMENTAL_LIB_EXPORT "Enable the experimental reduced library exports" FALSE)
+ # The purpose of the KDE4_DISABLE_PROPERTY_ variable is to be used as a prefix for
+ # the target property LINK_INTERFACE_LIBRARIES. If it is empty, the property will have its
+ # correct name, if it's not empty, it will be a different name, i.e. the actual property
+ # will not be set, i.e. disabled. See kdelibs/kdecore/CMakeLists.txt for an example.
+ # This will be removed again as soon as we use the reduced link interface as default.
+ # This won't cause any incompatibilties then because then cmake files which still
+ # have that prefix will work, since that prefix will just be empty.
+ #
+ # If enabled, make it empty, so the property will keep it's actual name.
+ if (KDE4_ENABLE_EXPERIMENTAL_LIB_EXPORT)
+ set(KDE4_DISABLE_PROPERTY_ )
+ else (KDE4_ENABLE_EXPERIMENTAL_LIB_EXPORT)
+ # If disabled, make it non-empty, so the property name will change from "LINK_INTERFACE_LIBRARIES"
+ # to "DISABLED_LINK_INTERFACE_LIBRARIES", which is a different (non-existing) target property, and so
+ # setting that property won't have an effect
+ set(KDE4_DISABLE_PROPERTY_ "DISABLED_")
+ endif (KDE4_ENABLE_EXPERIMENTAL_LIB_EXPORT)
endif(UNIX)# AND NOT APPLE)
+
+
if( KDE4_ENABLE_FINAL)
add_definitions(-DKDE_USE_FINAL)
endif(KDE4_ENABLE_FINAL)
diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake
index c30973da..768a36e2 100644
--- a/modules/KDE4Macros.cmake
+++ b/modules/KDE4Macros.cmake
@@ -1117,13 +1117,11 @@ macro(_KDE4_EXPORT_LIBRARY_DEPENDENCIES _append_or_write _filename)
endmacro(_KDE4_EXPORT_LIBRARY_DEPENDENCIES)
macro (_KDE4_TARGET_LINK_INTERFACE_LIBRARIES _target _interface_libs)
- if(KDE4_ENABLE_EXPERIMENTAL_LIB_EXPORT AND UNIX )# AND NOT APPLE)
- set_target_properties("${_target}" PROPERTIES LINK_INTERFACE_LIBRARIES "${_interface_libs}")
- endif(KDE4_ENABLE_EXPERIMENTAL_LIB_EXPORT AND UNIX)# AND NOT APPLE)
+ message(FATAL_ERROR "_KDE4_TARGET_LINK_INTERFACE_LIBRARIES() doesn't exist anymore. Set the LINK_INTERFACE_LIBRARIES target property instead. See kdelibs/kdecore/CMakeLists.txt for an example.")
endmacro (_KDE4_TARGET_LINK_INTERFACE_LIBRARIES)
macro (KDE4_TARGET_LINK_INTERFACE_LIBRARIES _target _interface_libs)
- message(FATAL_ERROR "KDE4_TARGET_LINK_INTERFACE_LIBRARIES() has been renamed to _KDE4_TARGET_LINK_INTERFACE_LIBRARIES(), so use that instead")
+ message(FATAL_ERROR "KDE4_TARGET_LINK_INTERFACE_LIBRARIES() doesn't exist anymore. Set the LINK_INTERFACE_LIBRARIES target property instead. See kdelibs/kdecore/CMakeLists.txt for an example.")
endmacro (KDE4_TARGET_LINK_INTERFACE_LIBRARIES _target _interface_libs)
macro (KDE4_INSTALL_HANDBOOK _lang)