diff options
Diffstat (limited to 'modules/KDE4Macros.cmake')
-rw-r--r-- | modules/KDE4Macros.cmake | 61 |
1 files changed, 20 insertions, 41 deletions
diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake index f0bd9c8e..b5300836 100644 --- a/modules/KDE4Macros.cmake +++ b/modules/KDE4Macros.cmake @@ -454,22 +454,9 @@ macro (KDE4_CREATE_FINAL_FILES _filenameCPP _filesExcludedFromFinalFile ) endmacro (KDE4_CREATE_FINAL_FILES) -# This macro sets the RPATH related options for libraries, plugins and kdeinit executables. -# It overrides the defaults set in FindKDE4Internal.cmake. -# 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) - 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 -# and creates wrapper shell scripts for the executables. +# This macro doesn't set up the RPATH related options for executables anymore, +# since now (wioth cmake 2.6) just the full RPATH is used always for everything. +# It does create wrapper shell scripts for the executables. # It overrides the defaults set in FindKDE4Internal.cmake. # For every executable a wrapper script is created, which sets the appropriate # environment variable for the platform (LD_LIBRARY_PATH on most UNIX systems, @@ -479,28 +466,8 @@ endmacro (KDE4_HANDLE_RPATH_FOR_LIBRARY) # If RPATH is not disabled, these scripts are also used but only for consistency, because # they don't really influence anything then, because the compiled-in RPATH overrides # the LD_LIBRARY_PATH env. variable. -# Executables with the RUN_UNINSTALLED option will be built with the RPATH pointing to the -# build dir, so that they can be run safely without being installed, e.g. as code generators -# for other stuff during the build. These executables will be relinked during "make install". -# All other executables are built with the RPATH with which they will be installed. macro (KDE4_HANDLE_RPATH_FOR_EXECUTABLE _target_NAME _type) if (UNIX) - - # set the RPATH related properties - if (NOT CMAKE_SKIP_RPATH) - if (${_type} STREQUAL "GUI") - set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE) - endif (${_type} STREQUAL "GUI") - - if (${_type} STREQUAL "NOGUI") - set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE) - endif (${_type} STREQUAL "NOGUI") - - if (${_type} STREQUAL "RUN_UNINSTALLED") - set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH FALSE BUILD_WITH_INSTALL_RPATH FALSE) - endif (${_type} STREQUAL "RUN_UNINSTALLED") - endif (NOT CMAKE_SKIP_RPATH) - if (APPLE) set(_library_path_variable "DYLD_LIBRARY_PATH") else (APPLE) @@ -580,8 +547,6 @@ macro (KDE4_ADD_PLUGIN _target_NAME _with_PREFIX) set_target_properties(${_target_NAME} PROPERTIES PREFIX "") endif (_first_SRC) - kde4_handle_rpath_for_library(${_target_NAME}) - if (WIN32) # for shared libraries/plugins a -DMAKE_target_LIB is required string(TOUPPER ${_target_NAME} _symbol) @@ -709,7 +674,6 @@ macro (KDE4_ADD_KDEINIT_EXECUTABLE _target_NAME ) add_library(kdeinit_${_target_NAME} SHARED ${_SRCS}) endif (KDE4_ENABLE_FINAL) - kde4_handle_rpath_for_library(kdeinit_${_target_NAME}) set_target_properties(kdeinit_${_target_NAME} PROPERTIES OUTPUT_NAME kdeinit4_${_target_NAME}) kde4_add_executable(${_target_NAME} "${_nogui}" "${_uninst}" ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp) @@ -891,8 +855,6 @@ macro (KDE4_ADD_LIBRARY _target_NAME _lib_TYPE) add_dependencies(${_target_NAME} "${_target_NAME}_automoc") endif(MSVC) - kde4_handle_rpath_for_library(${_target_NAME}) - # for shared libraries a -DMAKE_target_LIB is required string(TOUPPER ${_target_NAME} _symbol) string(REGEX REPLACE "[^_A-Za-z0-9]" "_" _symbol ${_symbol}) @@ -1134,6 +1096,23 @@ macro (KDE4_ADD_APP_ICON appsources pattern) endmacro (KDE4_ADD_APP_ICON) +# This macro is only kept around for compatibility, it is not needed/used anymore +# since CMake 2.6.0. With CMake 2.6.0 it is not necessary anymore link libraries again +# ("relink") to change their RPATH. Since this is fast now, they are now always built with +# full RPATH. +# Still keep this macro here, since somebody might use it and so that would break +# if we would just remove it from here. +# What it does now it sets the target properties of the given target the same way as +# they were set by the old version of the macro with the option FULL_RPATH enabled. +# This one may be a candidate for removal. Alex +macro (KDE4_HANDLE_RPATH_FOR_LIBRARY _target_NAME) + message(STATUS "You are using the macro KDE4_HANDLE_RPATH_FOR_LIBRARY(), which is an internal macro and shouldn't be used by external projects. Please remove it.") + if (NOT CMAKE_SKIP_RPATH) + set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH FALSE BUILD_WITH_INSTALL_RPATH FALSE) + endif (NOT CMAKE_SKIP_RPATH) +endmacro (KDE4_HANDLE_RPATH_FOR_LIBRARY) + + macro(_KDE4_EXPORT_LIBRARY_DEPENDENCIES _append_or_write _filename) message(FATAL_ERROR "_KDE4_EXPORT_LIBRARY_DEPENDENCIES() was an internal macro and has been removed again. Just remove the code which calls it, there is no substitute.") endmacro(_KDE4_EXPORT_LIBRARY_DEPENDENCIES) |