diff options
author | Alexander Neundorf <neundorf@kde.org> | 2007-12-19 21:24:57 +0000 |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2007-12-19 21:24:57 +0000 |
commit | 5c4c003ffbd2de9f815fed9dda014b667f3aea5b (patch) | |
tree | 2bc2843059bf8c25870bb6bded0866b5f8c8b8a9 | |
parent | 010d03f311be293d940e3c9f5baf195d5d2096d3 (diff) | |
download | extra-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.cmake | 6 | ||||
-rw-r--r-- | modules/KDE4Macros.cmake | 10 |
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 |