aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2007-12-19 21:24:57 +0000
committerAlexander Neundorf <neundorf@kde.org>2007-12-19 21:24:57 +0000
commit5c4c003ffbd2de9f815fed9dda014b667f3aea5b (patch)
tree2bc2843059bf8c25870bb6bded0866b5f8c8b8a9
parent010d03f311be293d940e3c9f5baf195d5d2096d3 (diff)
downloadextra-cmake-modules-5c4c003ffbd2de9f815fed9dda014b667f3aea5b.tar.gz
extra-cmake-modules-5c4c003ffbd2de9f815fed9dda014b667f3aea5b.tar.bz2
-fix RPATH change from yesterday
The libs and plugins were built with RPATH, but with the install RPATH, which means that if you run some executable during the build, it may get installed libs, since the RPATH in the libs points to the install dir. Now the libs are linked with the RPATH to the build dir, and when installing they are relinked. This unfortunately takes some time. There are two ways around it: -set KDE4_USE_ALWAYS_FULL_RPATH to FALSE, then you will have the old behaviour or -use cmake cvs and current kdesupport, then the RPATH will be changed not by linking again but by running chrpath on the installed binary, which takes basically no time Alex svn path=/trunk/KDE/kdelibs/; revision=750683
-rw-r--r--modules/KDE4Defaults.cmake6
-rw-r--r--modules/KDE4Macros.cmake10
2 files changed, 11 insertions, 5 deletions
diff --git a/modules/KDE4Defaults.cmake b/modules/KDE4Defaults.cmake
index 162dd2f4..b94eaf6d 100644
--- a/modules/KDE4Defaults.cmake
+++ b/modules/KDE4Defaults.cmake
@@ -21,6 +21,10 @@ set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
# since cmake 2.4.0
set(CMAKE_COLOR_MAKEFILE ON)
+# Enable use of chrpath to avoid the need for actually relinking on install
+# since cmake cvs 12/19/2007
+set(CMAKE_USE_CHRPATH ON)
+
# define the generic version of the libraries here
# this makes it easy to advance it when the next KDE release comes
set(GENERIC_LIB_VERSION "4.0.0")
@@ -33,8 +37,6 @@ set(KDE_NON_GENERIC_LIB_SOVERSION "5")
# all searchable directories has to be defined by the PATH environment var
# to reduce the number of required pathes executables are placed into
# the build bin dir
-# note: dll's should go also in bin dir and import libraries should go into lib,
-# but this seems not possible with recent cmake release
if (WIN32)
set (EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
# set (LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake
index 029bdf93..e0e72318 100644
--- a/modules/KDE4Macros.cmake
+++ b/modules/KDE4Macros.cmake
@@ -501,9 +501,13 @@ endmacro (KDE4_CREATE_FINAL_FILES)
# If RPATH is not explicitly disabled, libraries and plugins are built without RPATH, in
# the hope that the RPATH which is compiled into the executable is good enough.
macro (KDE4_HANDLE_RPATH_FOR_LIBRARY _target_NAME)
- if (NOT CMAKE_SKIP_RPATH AND NOT KDE4_USE_ALWAYS_FULL_RPATH)
- set_target_properties(${_target_NAME} PROPERTIES INSTALL_RPATH_USE_LINK_PATH FALSE SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE INSTALL_RPATH "")
- endif (NOT CMAKE_SKIP_RPATH AND NOT KDE4_USE_ALWAYS_FULL_RPATH)
+ if (NOT CMAKE_SKIP_RPATH)
+ if(KDE4_USE_ALWAYS_FULL_RPATH)
+ set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH FALSE BUILD_WITH_INSTALL_RPATH FALSE)
+ else(KDE4_USE_ALWAYS_FULL_RPATH)
+ set_target_properties(${_target_NAME} PROPERTIES INSTALL_RPATH_USE_LINK_PATH FALSE SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE INSTALL_RPATH "")
+ endif(KDE4_USE_ALWAYS_FULL_RPATH)
+ endif (NOT CMAKE_SKIP_RPATH)
endmacro (KDE4_HANDLE_RPATH_FOR_LIBRARY)
# This macro sets the RPATH related options for executables