aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2006-04-07 23:24:44 +0000
committerAlexander Neundorf <neundorf@kde.org>2006-04-07 23:24:44 +0000
commitdeae55ead451379ee6da03832987a840de8900d4 (patch)
treeaa42e7c816c1668f2b40f82faebd82a92dcdf190 /modules
parentfecb3eb2efb021bd6d385eaadd5665e3394ddf13 (diff)
downloadextra-cmake-modules-deae55ead451379ee6da03832987a840de8900d4.tar.gz
extra-cmake-modules-deae55ead451379ee6da03832987a840de8900d4.tar.bz2
-fix link error in kdewidgets
-fix error in kate (the ui_ prefix was missing) -change RPATH handling once again: -renamed "TOOL" to "RUN_UNINSTALLED" RPATH_STYLE is gone if CMAKE_SKIP_RPATH is enabled, no RPATH will be used if it is enabled, all except the RUN_UNINSTALLED apps will be built with RPATH to the install dir, apps with RUN_UNINSTALLED set will be built with RPATH to the build dir, and relinked during make install Alex svn path=/trunk/KDE/kdelibs/; revision=527381
Diffstat (limited to 'modules')
-rw-r--r--modules/FindKDE4Internal.cmake104
-rw-r--r--modules/KDE4Macros.cmake57
2 files changed, 44 insertions, 117 deletions
diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake
index ba1c0394..4a18ffe0 100644
--- a/modules/FindKDE4Internal.cmake
+++ b/modules/FindKDE4Internal.cmake
@@ -210,37 +210,6 @@ option(KDE4_BUILD_TESTS "Build the tests")
option(KDE4_USE_QT_EMB "link to Qt-embedded, don't use X")
-# RPATH handling
-set(RPATH_STYLE "default" CACHE STRING "Determine RPATH handling")
-set(KDE4_NEED_WRAPPER_SCRIPTS FALSE)
-if (UNIX)
-
- if ("${RPATH_STYLE}" MATCHES "none")
- set(RPATH_STYLE_MATCHED TRUE)
- set(KDE4_NEED_WRAPPER_SCRIPTS TRUE)
- endif ("${RPATH_STYLE}" MATCHES "none")
-
- if (NOT APPLE)
- if ("${RPATH_STYLE}" MATCHES "install")
- set(RPATH_STYLE_MATCHED TRUE)
- set(KDE4_NEED_WRAPPER_SCRIPTS TRUE)
- endif ("${RPATH_STYLE}" MATCHES "install")
-
- if ("${RPATH_STYLE}" MATCHES "both")
- set(RPATH_STYLE_MATCHED TRUE)
- endif ("${RPATH_STYLE}" MATCHES "both")
-
- endif (NOT APPLE)
-
- if(NOT RPATH_STYLE_MATCHED)
- set(RPATH_STYLE_MATCHED TRUE)
- endif(NOT RPATH_STYLE_MATCHED)
-endif (UNIX)
-
-# set it to false again until the next kde release of cmake is required
-# set(KDE4_NEED_WRAPPER_SCRIPTS FALSE)
-
-
#now try to find some kde stuff
#are we trying to compile kdelibs ?
@@ -269,26 +238,21 @@ if(EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h)
endif ("${CMAKE_GENERATOR}" MATCHES "MSYS")
set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH} )
+ # CMAKE_CFG_INTDIR is the output subdirectory created e.g. by XCode and MSVC
+ set(KDE4_DCOPIDL2CPP_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/dcopidl2cpp )
+ set(KDE4_KCFGC_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/kconfig_compiler )
+ set(KDE4_MEINPROC_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/meinproc )
else (WIN32)
set(KDE4_DCOPIDL_EXECUTABLE ${CMAKE_SOURCE_DIR}/dcop/dcopidlng/dcopidl )
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib )
-# set(KDE4_LD_LIBRARY_PATH LD_LIBRARY_PATH=${LIBRARY_OUTPUT_PATH}\$\${LD_LIBRARY_PATH+:\$\$LD_LIBRARY_PATH} )
+ set(KDE4_DCOPIDL2CPP_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/dcopidl2cpp.sh )
+ set(KDE4_KCFGC_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/kconfig_compiler.sh )
+ set(KDE4_MEINPROC_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/meinproc.sh )
endif (WIN32)
set(KDE4_LIB_DIR ${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR})
set(KDE4_KALYPTUS_DIR ${CMAKE_SOURCE_DIR}/dcop/dcopidlng/ )
- # CMAKE_CFG_INTDIR is the output subdirectory created e.g. by XCode and MSVC
- if (KDE4_NEED_WRAPPER_SCRIPTS)
- set(KDE4_DCOPIDL2CPP_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/dcopidl2cpp.sh )
- set(KDE4_KCFGC_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/kconfig_compiler.sh )
- set(KDE4_MEINPROC_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/meinproc.sh )
- else (KDE4_NEED_WRAPPER_SCRIPTS)
- set(KDE4_DCOPIDL2CPP_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/dcopidl2cpp )
- set(KDE4_KCFGC_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/kconfig_compiler )
- set(KDE4_MEINPROC_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/meinproc )
- endif (KDE4_NEED_WRAPPER_SCRIPTS)
-
# when building kdelibs, make the dcop and kcfg rules depend on the binaries...
set( _KDE4_DCOPIDL2CPP_DEP dcopidl2cpp)
set( _KDE4_KCONFIG_COMPILER_DEP kconfig_compiler)
@@ -478,60 +442,20 @@ if (UNIX)
set( _KDE4_PLATFORM_INCLUDE_DIRS /usr/local/include )
# the rest is RPATH handling
- set(RPATH_STYLE_MATCHED FALSE)
-
- if ("${RPATH_STYLE}" MATCHES "none")
- # no relinking, needs LD_LIBRARY_PATH
- set(RPATH_STYLE_MATCHED TRUE)
- set(CMAKE_SKIP_RPATH TRUE)
- endif ("${RPATH_STYLE}" MATCHES "none")
-
- if (NOT APPLE)
- if ("${RPATH_STYLE}" MATCHES "install")
- # no relinking, needs LD_LIBRARY_PATH from the builddir
- set(RPATH_STYLE_MATCHED TRUE)
- set(CMAKE_SKIP_BUILD_RPATH TRUE)
- set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
- set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}${LIB_INSTALL_DIR} ${QT_LIBRARY_DIR} )
- # building something else than kdelibs/ ?
- # then add the dir where the kde libraries are installed
- if (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h)
- set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} ${KDE4_LIB_DIR} )
- endif (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h)
-
- endif ("${RPATH_STYLE}" MATCHES "install")
-
- if ("${RPATH_STYLE}" MATCHES "both")
- # no relinking, prefers the lib in the builddir over the installed one
- set(RPATH_STYLE_MATCHED TRUE)
- set(CMAKE_SKIP_BUILD_RPATH TRUE)
- set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
- set(CMAKE_INSTALL_RPATH ${LIBRARY_OUTPUT_PATH} ${CMAKE_INSTALL_PREFIX}/lib )
-
- set(CMAKE_INSTALL_RPATH ${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR} ${CMAKE_INSTALL_PREFIX}${LIB_INSTALL_DIR} ${QT_LIBRARY_DIR} )
- # building something else than kdelibs/ ?
- # then add the dir where the kde libraries are installed
- if (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h)
- set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} ${KDE4_LIB_DIR} )
- endif (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h)
-
- endif ("${RPATH_STYLE}" MATCHES "both")
-
- endif (NOT APPLE)
-
- if(NOT RPATH_STYLE_MATCHED)
- # rpath to the builddir, relinking to the install dir
+ if (APPLE)
+ set(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}${LIB_INSTALL_DIR})
+ else (APPLE)
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}${LIB_INSTALL_DIR} ${QT_LIBRARY_DIR} )
# building something else than kdelibs/ ?
# then add the dir where the kde libraries are installed
if (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h)
- set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} ${KDE4_LIB_DIR} )
+ set(CMAKE_INSTALL_RPATH ${KDE4_LIB_DIR} ${CMAKE_INSTALL_RPATH} )
endif (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h)
- set(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}${LIB_INSTALL_DIR})
- endif(NOT RPATH_STYLE_MATCHED)
-
+ set(CMAKE_SKIP_BUILD_RPATH TRUE)
+ set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+ endif (APPLE)
endif (UNIX)
diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake
index 606be87b..03504cfc 100644
--- a/modules/KDE4Macros.cmake
+++ b/modules/KDE4Macros.cmake
@@ -366,27 +366,44 @@ MACRO (KDE4_CREATE_FINAL_FILES _filenameCPP _filenameC )
foreach (_current_FILE ${ARGN})
STRING(REGEX MATCH ".+\\.c$" _isCFile ${_current_FILE})
if (_isCFile)
- FILE(APPEND ${_filenameC} "#include \"${_current_FILE}\"\n")
+ file(APPEND ${_filenameC} "#include \"${_current_FILE}\"\n")
else (_isCFile)
- FILE(APPEND ${_filenameCPP} "#include \"${_current_FILE}\"\n")
+ file(APPEND ${_filenameCPP} "#include \"${_current_FILE}\"\n")
endif (_isCFile)
endforeach (_current_FILE)
ENDMACRO (KDE4_CREATE_FINAL_FILES)
-MACRO (KDE4_HANDLE_RPATH _target_NAME)
- if (KDE4_NEED_WRAPPER_SCRIPTS)
+macro (KDE4_HANDLE_RPATH _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)
set(_library_path_variable "LD_LIBRARY_PATH")
endif (APPLE)
+
set(_ld_library_path "${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/:${CMAKE_INSTALL_PREFIX}${LIB_INSTALL_DIR}:${KDE4_LIB_DIR}:${QT_LIBRARY_DIR}")
get_target_property(_executable ${_target_NAME} LOCATION )
configure_file(${KDE4_MODULE_DIR}/kde4_exec_via_sh.cmake ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/${_target_NAME}.sh)
- endif (KDE4_NEED_WRAPPER_SCRIPTS)
-ENDMACRO (KDE4_HANDLE_RPATH)
+ endif (UNIX)
+endmacro (KDE4_HANDLE_RPATH)
MACRO (KDE4_ADD_PLUGIN _target_NAME _with_PREFIX)
@@ -443,14 +460,13 @@ MACRO (KDE4_ADD_KDEINIT_EXECUTABLE _target_NAME )
ADD_EXECUTABLE(${_target_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp)
- KDE4_HANDLE_RPATH(${_target_NAME})
+ KDE4_HANDLE_RPATH(${_target_NAME} GUI)
TARGET_LINK_LIBRARIES(${_target_NAME} kdeinit_${_target_NAME})
# endif (WIN32)
ENDMACRO (KDE4_ADD_KDEINIT_EXECUTABLE _target_NAME)
-
-MACRO (KDE4_ADD_EXECUTABLE _target_NAME _first_ARG)
+macro (KDE4_ADD_EXECUTABLE _target_NAME _first_ARG)
set(_first_SRC ${_first_ARG} )
set(_add_executable_param)
@@ -471,11 +487,11 @@ MACRO (KDE4_ADD_EXECUTABLE _target_NAME _first_ARG)
set(_first_SRC)
set(_add_executable_param)
endif (${_first_ARG} STREQUAL "NOGUI")
- if (${_first_ARG} STREQUAL "TOOL")
- set(_type "TOOL")
+ if (${_first_ARG} STREQUAL "RUN_UNINSTALLED")
+ set(_type "RUN_UNINSTALLED")
set(_first_SRC)
set(_add_executable_param)
- endif (${_first_ARG} STREQUAL "TOOL")
+ endif (${_first_ARG} STREQUAL "RUN_UNINSTALLED")
if (KDE4_ENABLE_FINAL)
kde4_create_final_files(${_target_NAME}_final_cpp.cpp ${_target_NAME}_final_c.c ${_first_SRC} ${ARGN})
@@ -484,22 +500,9 @@ MACRO (KDE4_ADD_EXECUTABLE _target_NAME _first_ARG)
add_executable(${_target_NAME} ${_add_executable_param} ${_first_SRC} ${ARGN} )
endif (KDE4_ENABLE_FINAL)
- # and now the RPATH handling...
- if (${_type} STREQUAL "GUI")
-# set_target_properties(${_target_NAME} SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE)
- endif (${_type} STREQUAL "GUI")
-
- if (${_type} STREQUAL "NOGUI")
-# set_target_properties(${_target_NAME} SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE)
- endif (${_type} STREQUAL "NOGUI")
-
- if (${_type} STREQUAL "TOOL")
-# set_target_properties(${_target_NAME} SKIP_BUILD_RPATH FALSE BUILD_WITH_INSTALL_RPATH FALSE)
- endif (${_type} STREQUAL "TOOL")
-
- kde4_handle_rpath(${_target_NAME})
+ kde4_handle_rpath(${_target_NAME} ${_type})
-ENDMACRO (KDE4_ADD_EXECUTABLE _target_NAME)
+endmacro (KDE4_ADD_EXECUTABLE _target_NAME)
MACRO (KDE4_ADD_LIBRARY _target_NAME _lib_TYPE)