diff options
author | Dario Freddi <drf@kde.org> | 2010-03-01 19:20:31 +0000 |
---|---|---|
committer | Dario Freddi <drf@kde.org> | 2010-03-01 19:20:31 +0000 |
commit | 4b989a26ea40d46100fb7883dcec1778eb8d4533 (patch) | |
tree | 6b79ca6535baff87dcebbebcfa9df4704c3e6b5b | |
parent | 84ccffd809dc71de314f21cb747d590d246be3ed (diff) | |
download | extra-cmake-modules-4b989a26ea40d46100fb7883dcec1778eb8d4533.tar.gz extra-cmake-modules-4b989a26ea40d46100fb7883dcec1778eb8d4533.tar.bz2 |
This commit is a massive backport of: r1091455, r1091811, r1091516, r1091017, r1089968, r1089130 and maybe some others which I forgot.
Basically it makes KAuth's plugins dynamic, except for fake ones. Bottom line: less libraries linked to kdecore and no crashes upon installation problems.
Tested on a clean build of the branch, works great.
svn path=/branches/KDE/4.4/kdelibs/; revision=1097623
-rw-r--r-- | modules/FindKDE4Internal.cmake | 16 | ||||
-rw-r--r-- | modules/FindLibAttica.cmake | 10 | ||||
-rw-r--r-- | modules/FindPolkitQt-1.cmake | 11 | ||||
-rw-r--r-- | modules/FindPolkitQt.cmake | 6 | ||||
-rw-r--r-- | modules/FindQt4.cmake | 10 | ||||
-rw-r--r-- | modules/KDE4Defaults.cmake | 4 | ||||
-rw-r--r-- | modules/KDE4Macros.cmake | 19 | ||||
-rw-r--r-- | modules/MacroOptionalFindPackage.cmake | 32 |
8 files changed, 26 insertions, 82 deletions
diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake index a31a81d5..1ce3a7cb 100644 --- a/modules/FindKDE4Internal.cmake +++ b/modules/FindKDE4Internal.cmake @@ -123,8 +123,6 @@ # KDE4_USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR - only present for CMake >= 2.6.3, defaults to TRUE # If enabled, the package should install its <package>Config.cmake file to # lib/cmake/<package>/ instead to lib/<package>/cmake -# KDE4_SERIALIZE_TOOL - wrapper to serialize potentially resource-intensive commands during -# parallel builds (set to 'icecc' when using icecream) # # It also adds the following macros and functions (from KDE4Macros.cmake) # KDE4_ADD_UI_FILES (SRCS_VAR file1.ui ... fileN.ui) @@ -628,7 +626,6 @@ endif(NOT PHONON_FOUND) 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") -set(KDE4_SERIALIZE_TOOL "" CACHE STRING "Tool to serialize resource-intensive commands in parallel builds") # if CMake 2.6.3 or above is used, provide an option which should be used by other KDE packages # whether to install a CMake FooConfig.cmake into lib/foo/cmake/ or /lib/cmake/foo/ @@ -668,11 +665,6 @@ if( KDE4_ENABLE_FINAL) add_definitions(-DKDE_USE_FINAL) endif(KDE4_ENABLE_FINAL) -if(KDE4_SERIALIZE_TOOL) - # parallel build with many meinproc invocations can consume a huge amount of memory - set(KDE4_MEINPROC_EXECUTABLE ${KDE4_SERIALIZE_TOOL} ${KDE4_MEINPROC_EXECUTABLE}) -endif(KDE4_SERIALIZE_TOOL) - # If we are building ! kdelibs, check where kdelibs are installed. # If they are installed in a directory which contains "lib64", we default to "64" for LIB_SUFFIX, # so the current project will by default also go into lib64. @@ -1159,7 +1151,7 @@ if (CMAKE_COMPILER_IS_GNUCXX) string(REGEX MATCH "(--enable-libstdcxx-allocator=mt)" _GCC_COMPILED_WITH_BAD_ALLOCATOR "${_gcc_alloc_info}") endif (GCC_IS_NEWER_THAN_4_1) - if (__KDE_HAVE_GCC_VISIBILITY AND GCC_IS_NEWER_THAN_4_1 AND NOT _GCC_COMPILED_WITH_BAD_ALLOCATOR AND NOT WIN32 AND NOT CMAKE_CROSSCOMPILING) + if (__KDE_HAVE_GCC_VISIBILITY AND GCC_IS_NEWER_THAN_4_1 AND NOT _GCC_COMPILED_WITH_BAD_ALLOCATOR AND NOT WIN32) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") set (KDE4_C_FLAGS "-fvisibility=hidden") # check that Qt defines Q_DECL_EXPORT as __attribute__ ((visibility("default"))) @@ -1183,7 +1175,7 @@ if (CMAKE_COMPILER_IS_GNUCXX) endif (GCC_IS_NEWER_THAN_4_2) else (__KDE_HAVE_GCC_VISIBILITY AND GCC_IS_NEWER_THAN_4_1 AND NOT _GCC_COMPILED_WITH_BAD_ALLOCATOR AND NOT WIN32) set (__KDE_HAVE_GCC_VISIBILITY 0) - endif (__KDE_HAVE_GCC_VISIBILITY AND GCC_IS_NEWER_THAN_4_1 AND NOT _GCC_COMPILED_WITH_BAD_ALLOCATOR AND NOT WIN32 AND NOT CMAKE_CROSSCOMPILING) + endif (__KDE_HAVE_GCC_VISIBILITY AND GCC_IS_NEWER_THAN_4_1 AND NOT _GCC_COMPILED_WITH_BAD_ALLOCATOR AND NOT WIN32) endif (CMAKE_COMPILER_IS_GNUCXX) @@ -1233,13 +1225,13 @@ macro (KDE4_PRINT_RESULTS) # inside kdelibs the include dir and lib dir are internal, not "found" if (NOT _kdeBootStrapping) if(KDE4_INCLUDE_DIR) - message(STATUS "Found KDE 4.5 include dir: ${KDE4_INCLUDE_DIR}") + message(STATUS "Found KDE 4.4 include dir: ${KDE4_INCLUDE_DIR}") else(KDE4_INCLUDE_DIR) message(STATUS "ERROR: unable to find the KDE 4 headers") endif(KDE4_INCLUDE_DIR) if(KDE4_LIB_DIR) - message(STATUS "Found KDE 4.5 library dir: ${KDE4_LIB_DIR}") + message(STATUS "Found KDE 4.4 library dir: ${KDE4_LIB_DIR}") else(KDE4_LIB_DIR) message(STATUS "ERROR: unable to find the KDE 4 core library") endif(KDE4_LIB_DIR) diff --git a/modules/FindLibAttica.cmake b/modules/FindLibAttica.cmake index b9b0610a..f901075a 100644 --- a/modules/FindLibAttica.cmake +++ b/modules/FindLibAttica.cmake @@ -14,6 +14,11 @@ IF (NOT LIBATTICA_MIN_VERSION) SET(LIBATTICA_MIN_VERSION "0.1.0") ENDIF(NOT LIBATTICA_MIN_VERSION) +IF (LIBATTICA_INCLUDE_DIR AND LIBATTICA_LIBRARIES) + # in cache already + SET(libattica_FIND_QUIETLY TRUE) +ENDIF (LIBATTICA_INCLUDE_DIR AND LIBATTICA_LIBRARIES) + IF (NOT WIN32) # use pkg-config to get the directories and then use these values # in the FIND_PATH() and FIND_LIBRARY() calls @@ -54,9 +59,10 @@ FIND_LIBRARY(LIBATTICA_LIBRARIES NAMES attica libattica ) INCLUDE(FindPackageHandleStandardArgs) -# handle the QUIETLY and REQUIRED arguments and set LIBATTICA_FOUND to TRUE if +# handle the QUIETLY and REQUIRED arguments and set ATTICA_FOUND to TRUE if # all listed variables are TRUE -FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibAttica DEFAULT_MSG LIBATTICA_LIBRARIES LIBATTICA_INCLUDE_DIR LIBATTICA_VERSION_OK) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(libattica DEFAULT_MSG LIBATTICA_LIBRARIES LIBATTICA_INCLUDE_DIR LIBATTICA_VERSION_OK) MARK_AS_ADVANCED(LIBATTICA_INCLUDE_DIR LIBATTICA_LIBRARIES) + diff --git a/modules/FindPolkitQt-1.cmake b/modules/FindPolkitQt-1.cmake index 159a54cc..8ef5b3c9 100644 --- a/modules/FindPolkitQt-1.cmake +++ b/modules/FindPolkitQt-1.cmake @@ -74,7 +74,7 @@ find_library( POLKITQT-1_GUI_LIBRARY NAMES polkit-qt-gui-1 HINTS ${PC_POLKITQT-1_LIBDIR} ) -find_library( POLKITQT-1_AGENT_LIBRARY +find_library( POLKITQT-1_AGENT_LIBRARY NAMES polkit-qt-agent-1 HINTS ${PC_POLKITQT-1_LIBDIR} ) @@ -85,14 +85,9 @@ include(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set POLKITQT-1_FOUND to TRUE if # all listed variables are TRUE -find_package_handle_standard_args(PolkitQt-1 DEFAULT_MSG POLKITQT-1_LIBRARIES POLKITQT-1_INCLUDE_DIR POLKITQT-1_VERSION_OK) +find_package_handle_standard_args(PolkitQt-1 DEFAULT_MSG POLKITQT-1_LIBRARIES POLKITQT-1_INCLUDE_DIR POLKITQT-1_VERSION_OK) -mark_as_advanced(POLKITQT-1_INCLUDE_DIR - POLKITQT-1_CORE_LIBRARY - POLKITQT-1_GUI_LIBRARY - POLKITQT-1_AGENT_LIBRARY - POLKITQT-1_VERSION_FILE - ) +mark_as_advanced(POLKITQT-1_INCLUDE_DIR POLKITQT-1_CORE_LIBRARY POLKITQT-1_GUI_LIBRARY POLKITQT-1_LIBRARIES POLKITQT-1_VERSION_OK) if (POLKITQT-1_FOUND) if (NOT PC_POLKITQT-1_PREFIX STREQUAL CMAKE_INSTALL_PREFIX) diff --git a/modules/FindPolkitQt.cmake b/modules/FindPolkitQt.cmake index 84a2b8b5..8f9f712f 100644 --- a/modules/FindPolkitQt.cmake +++ b/modules/FindPolkitQt.cmake @@ -88,11 +88,7 @@ include(FindPackageHandleStandardArgs) # all listed variables are TRUE find_package_handle_standard_args(PolkitQt DEFAULT_MSG POLKITQT_INCLUDE_DIR POLKITQT_GUI_LIBRARY POLKITQT_CORE_LIBRARY POLKITQT_VERSION_OK) -mark_as_advanced(POLKITQT_INCLUDE_DIR - POLKITQT_CORE_LIBRARY - POLKITQT_GUI_LIBRARY - POLKITQT_VERSION_FILE - ) +mark_as_advanced(POLKITQT_INCLUDE_DIR POLKITQT_CORE_LIBRARY POLKITQT_GUI_LIBRARY POLKITQT_LIBRARIES POLKITQT_VERSION_OK) if(POLKITQT_FOUND) get_filename_component(_POLKITQT_INSTALL_PREFIX "${POLKITQT_CORE_LIBRARY}" PATH) diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index 0fef4275..081e996e 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -51,7 +51,6 @@ # QT_USE_QTXMLPATTERNS # QT_USE_PHONON # QT_USE_QTSCRIPTTOOLS -# QT_USE_QTDECLARATIVE # # QT_USE_IMPORTED_TARGETS # If this variable is set to TRUE, FindQt4.cmake will create imported @@ -199,7 +198,6 @@ # QT_QTXML_FOUND True if QtXml was found. # QT_QTXMLPATTERNS_FOUND True if QtXmlPatterns was found. # QT_PHONON_FOUND True if phonon was found. -# QT_QTDECLARATIVE_FOUND True if QtDeclarative was found. # # QT_MAC_USE_COCOA For Mac OS X, its whether Cocoa or Carbon is used. # In general, this should not be used, but its useful @@ -249,8 +247,7 @@ # QT_QTXMLPATTERNS_INCLUDE_DIR Path to "include/QtXmlPatterns" # QT_PHONON_INCLUDE_DIR Path to "include/phonon" # QT_QTSCRIPTTOOLS_INCLUDE_DIR Path to "include/QtScriptTools" -# QT_QTDECLARATIVE_INCLUDE_DIR Path to "include/QtDeclarative" -# +# # QT_BINARY_DIR Path to "bin" of Qt4 # QT_LIBRARY_DIR Path to "lib" of Qt4 # QT_PLUGINS_DIR Path to "plugins" for Qt4 @@ -316,8 +313,6 @@ # # The Phonon library: QT_PHONON_LIBRARY # -# The QtDeclarative library: QT_QTDECLARATIVE_LIBRARY -# # also defined, but NOT for general use are # QT_MOC_EXECUTABLE Where to find the moc tool. # QT_UIC_EXECUTABLE Where to find the uic tool. @@ -692,7 +687,7 @@ IF (QT4_QMAKE_FOUND) SET(QT_MODULES QtCore QtGui Qt3Support QtSvg QtScript QtTest QtUiTools QtHelp QtWebKit QtXmlPatterns QtNetwork QtMultimedia - QtNsPlugin QtOpenGL QtSql QtXml QtDesigner QtDBus QtScriptTools QtDeclarative) + QtNsPlugin QtOpenGL QtSql QtXml QtDesigner QtDBus QtScriptTools) IF(Q_WS_X11) SET(QT_MODULES ${QT_MODULES} QtMotif) @@ -1009,7 +1004,6 @@ IF (QT4_QMAKE_FOUND) _QT4_ADJUST_LIB_VARS(QtAssistantClient) _QT4_ADJUST_LIB_VARS(QtCLucene) _QT4_ADJUST_LIB_VARS(QtDBus) - _QT4_ADJUST_LIB_VARS(QtDeclarative) _QT4_ADJUST_LIB_VARS(QtDesigner) _QT4_ADJUST_LIB_VARS(QtDesignerComponents) _QT4_ADJUST_LIB_VARS(QtHelp) diff --git a/modules/KDE4Defaults.cmake b/modules/KDE4Defaults.cmake index 04c0ae2c..82fa6044 100644 --- a/modules/KDE4Defaults.cmake +++ b/modules/KDE4Defaults.cmake @@ -25,11 +25,11 @@ set(CMAKE_COLOR_MAKEFILE ON) # define the generic version of the libraries here # this makes it easy to advance it when the next KDE release comes # Use this version number for libraries which are at version n in KDE version n -set(GENERIC_LIB_VERSION "4.5.0") +set(GENERIC_LIB_VERSION "4.4.0") set(GENERIC_LIB_SOVERSION "4") # Use this version number for libraries which are already at version n+1 in KDE version n -set(KDE_NON_GENERIC_LIB_VERSION "5.5.0") +set(KDE_NON_GENERIC_LIB_VERSION "5.4.0") set(KDE_NON_GENERIC_LIB_SOVERSION "5") # windows does not support LD_LIBRARY_PATH or similar diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake index f58b658e..61757c89 100644 --- a/modules/KDE4Macros.cmake +++ b/modules/KDE4Macros.cmake @@ -106,12 +106,6 @@ macro (KDE4_ADD_KCFG_FILES _sources ) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_rel_PATH}) endif(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${_rel_PATH}") - if (CMAKE_CROSSCOMPILING) - set(IMPORT_KCONFIG_COMPILER_EXECUTABLE "${KDE_HOST_TOOLS_PATH}/ImportKConfigCompilerExecutable.cmake" CACHE FILEPATH "Point it to the export file of kconfig_compiler from a native build") - include(${IMPORT_KCONFIG_COMPILER_EXECUTABLE}) - set(KDE4_KCFGC_EXECUTABLE kconfig_compiler) - endif (CMAKE_CROSSCOMPILING) - # the command for creating the source file from the kcfg file add_custom_command(OUTPUT ${_header_FILE} ${_src_FILE} COMMAND ${KDE4_KCFGC_EXECUTABLE} @@ -289,13 +283,6 @@ macro (KDE4_CREATE_HANDBOOK _docbook) endif (_kdeBootStrapping) file(GLOB _docs *.docbook) - - if (CMAKE_CROSSCOMPILING) - set(IMPORT_MEINPROC4_EXECUTABLE "${KDE_HOST_TOOLS_PATH}/ImportMeinProc4Executable.cmake" CACHE FILEPATH "Point it to the export file of meinproc4 from a native build") - include(${IMPORT_MEINPROC4_EXECUTABLE}) - set(KDE4_MEINPROC_EXECUTABLE meinproc4) - endif (CMAKE_CROSSCOMPILING) - add_custom_command(OUTPUT ${_doc} COMMAND ${KDE4_MEINPROC_EXECUTABLE} --check ${_bootstrapOption} --cache ${_doc} ${_input} DEPENDS ${_docs} ${_KDE4_MEINPROC_EXECUTABLE_DEP} ${_ssheet} @@ -367,12 +354,6 @@ macro (KDE4_CREATE_MANPAGE _docbook _section) set(_bootstrapOption) endif (_kdeBootStrapping) - if (CMAKE_CROSSCOMPILING) - set(IMPORT_MEINPROC4_EXECUTABLE "${KDE_HOST_TOOLS_PATH}/ImportMeinProc4Executable.cmake" CACHE FILEPATH "Point it to the export file of meinproc4 from a native build") - include(${IMPORT_MEINPROC4_EXECUTABLE}) - set(KDE4_MEINPROC_EXECUTABLE meinproc4) - endif (CMAKE_CROSSCOMPILING) - add_custom_command(OUTPUT ${_outdoc} COMMAND ${KDE4_MEINPROC_EXECUTABLE} --stylesheet ${_ssheet} --check ${_bootstrapOption} ${_input} DEPENDS ${_input} ${_KDE4_MEINPROC_EXECUTABLE_DEP} ${_ssheet} diff --git a/modules/MacroOptionalFindPackage.cmake b/modules/MacroOptionalFindPackage.cmake index d4ed48e3..f09952f3 100644 --- a/modules/MacroOptionalFindPackage.cmake +++ b/modules/MacroOptionalFindPackage.cmake @@ -7,42 +7,22 @@ # The standard <name>_FOUND variables can be used in the same way # as when using the normal FIND_PACKAGE() -# Copyright (c) 2006-2010 Alexander Neundorf, <neundorf@kde.org> +# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org> # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# This is just a helper macro to set a bunch of variables empty. -# We don't know whether the package uses UPPERCASENAME or CamelCaseName, so we try both: -macro(_MOFP_SET_EMPTY_IF_DEFINED _name _var) - if(DEFINED ${_name}_${_var}) - set(${_name}_${_var} "") - endif(DEFINED ${_name}_${_var}) - - string(TOUPPER ${_name} _nameUpper) - if(DEFINED ${_nameUpper}_${_var}) - set(${_nameUpper}_${_var} "") - endif(DEFINED ${_nameUpper}_${_var}) -endmacro(_MOFP_SET_EMPTY_IF_DEFINED _package _var) - macro (MACRO_OPTIONAL_FIND_PACKAGE _name ) option(WITH_${_name} "Search for ${_name} package" ON) if (WITH_${_name}) find_package(${_name} ${ARGN}) else (WITH_${_name}) - string(TOUPPER ${_name} _nameUpper) - set(${_name}_FOUND FALSE) - set(${_nameUpper}_FOUND FALSE) - - _mofp_set_empty_if_defined(${_name} INCLUDE_DIRS) - _mofp_set_empty_if_defined(${_name} INCLUDE_DIR) - _mofp_set_empty_if_defined(${_name} INCLUDES) - _mofp_set_empty_if_defined(${_name} LIBRARY) - _mofp_set_empty_if_defined(${_name} LIBRARIES) - _mofp_set_empty_if_defined(${_name} LIBS) - _mofp_set_empty_if_defined(${_name} FLAGS) - _mofp_set_empty_if_defined(${_name} DEFINITIONS) + set(${_name}_FOUND) + set(${_name}_INCLUDE_DIR) + set(${_name}_INCLUDES) + set(${_name}_LIBRARY) + set(${_name}_LIBRARIES) endif (WITH_${_name}) endmacro (MACRO_OPTIONAL_FIND_PACKAGE) |