diff options
-rw-r--r-- | CMakeLists.txt | 23 | ||||
-rw-r--r-- | ECMConfig.cmake.in | 18 | ||||
-rw-r--r-- | extra-cmake-modules-config.cmake.in | 18 | ||||
-rw-r--r-- | kde-modules/KDECMakeSettings.cmake | 15 | ||||
-rw-r--r-- | kde-modules/KDECompilerSettings.cmake | 11 | ||||
-rw-r--r-- | modules/ECMConfig.cmake.in | 18 | ||||
-rw-r--r-- | modules/ECMQtFramework.cmake | 24 | ||||
-rw-r--r-- | modules/ECMQtFrameworkConfig.cmake.in | 17 | ||||
-rw-r--r-- | modules/ECMSetVersionVariables.cmake | 42 | ||||
-rw-r--r-- | modules/ECMUseFindModules.cmake | 12 | ||||
-rw-r--r-- | modules/ECMVersion.cmake | 2 |
11 files changed, 82 insertions, 118 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ca946dc..dd1c04fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,14 +4,14 @@ project(extra-cmake-modules) set(ECM_MAJOR_VERSION 0) set(ECM_MINOR_VERSION 0) -set(ECM_PATCH_VERSION 3) +set(ECM_PATCH_VERSION 4) set(ECM_VERSION ${ECM_MAJOR_VERSION}.${ECM_MINOR_VERSION}.${ECM_PATCH_VERSION}) enable_testing() add_subdirectory(tests) -set(SHARE_INSTALL_DIR share/extra-cmake-modules-${ECM_VERSION}) +set(SHARE_INSTALL_DIR share/ECM-${ECM_VERSION}) set(MODULES_INSTALL_DIR ${SHARE_INSTALL_DIR}/modules/) set(KDE_MODULES_INSTALL_DIR ${SHARE_INSTALL_DIR}/kde-modules/) set(FIND_MODULES_INSTALL_DIR ${SHARE_INSTALL_DIR}/find-modules/) @@ -41,19 +41,20 @@ install(FILES ${installKdeModuleFiles} DESTINATION ${KDE_MODULES_INSTALL_DIR}) file(GLOB installFindModuleFiles ${CMAKE_SOURCE_DIR}/find-modules/*[^~]) install(FILES ${installFindModuleFiles} DESTINATION ${FIND_MODULES_INSTALL_DIR}) -# figure out the relative path from the installed Config.cmake file to the install prefix (which may be at -# runtime different from the chosen CMAKE_INSTALL_PREFIX if under Windows the package was installed anywhere) -# This relative path will be configured into the BarConfig.cmake -file(RELATIVE_PATH relInstallDir ${CMAKE_INSTALL_PREFIX}/${CMAKECONFIG_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX}) -configure_file(extra-cmake-modules-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/extra-cmake-modules-config.cmake @ONLY) -include(WriteBasicConfigVersionFile) -write_basic_config_version_file( ${CMAKE_CURRENT_BINARY_DIR}/extra-cmake-modules-config-version.cmake +include(CMakePackageConfigHelpers) + +configure_package_config_file(ECMConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/ECMConfig.cmake + INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} + PATH_VARS FIND_MODULES_INSTALL_DIR KDE_MODULES_INSTALL_DIR MODULES_INSTALL_DIR ) + + +write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/ECMConfigVersion.cmake VERSION ${ECM_MAJOR_VERSION}.${ECM_MINOR_VERSION}.${ECM_PATCH_VERSION} COMPATIBILITY AnyNewerVersion ) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/extra-cmake-modules-config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/extra-cmake-modules-config-version.cmake +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ECMConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/ECMConfigVersion.cmake DESTINATION ${CMAKECONFIG_INSTALL_DIR}) # need to install a Config.cmake file diff --git a/ECMConfig.cmake.in b/ECMConfig.cmake.in new file mode 100644 index 00000000..b163e3ae --- /dev/null +++ b/ECMConfig.cmake.in @@ -0,0 +1,18 @@ +@PACKAGE_INIT@ + +# set the version of myself +set(ECM_VERSION_MAJOR @ECM_MAJOR_VERSION@) +set(ECM_VERSION_MINOR @ECM_MINOR_VERSION@) +set(ECM_VERSION_PATCH @ECM_PATCH_VERSION@) +set(ECM_MODULES_VERSION ${ECM_VERSION_MAJOR}.${ECM_VERSION_MINOR}.${ECM_VERSION_PATCH}) + + +set(ECM_FIND_MODULE_DIR "@PACKAGE_FIND_MODULES_INSTALL_DIR@") + +set(ECM_MODULE_DIR "@PACKAGE_MODULES_INSTALL_DIR@") + +set(ECM_KDE_MODULE_DIR "@PACKAGE_KDE_MODULES_INSTALL_DIR@") + +set(ECM_MODULE_PATH "${ECM_MODULE_DIR}" "${ECM_FIND_MODULE_DIR}" "${ECM_KDE_MODULE_DIR}") + +include("${ECM_MODULE_DIR}/ECMUseFindModules.cmake") diff --git a/extra-cmake-modules-config.cmake.in b/extra-cmake-modules-config.cmake.in deleted file mode 100644 index 33ae10d8..00000000 --- a/extra-cmake-modules-config.cmake.in +++ /dev/null @@ -1,18 +0,0 @@ -get_filename_component(rootDir ${CMAKE_CURRENT_LIST_DIR}/@relInstallDir@ ABSOLUTE) # get the chosen install prefix - -# set the version of myself -set(EXTRA_CMAKE_MODULES_VERSION_MAJOR @ECM_MAJOR_VERSION@) -set(EXTRA_CMAKE_MODULES_VERSION_MINOR @ECM_MINOR_VERSION@) -set(EXTRA_CMAKE_MODULES_VERSION_PATCH @ECM_PATCH_VERSION@) -set(EXTRA_CMAKE_MODULES_VERSION ${EXTRA_CMAKE_MODULES_VERSION_MAJOR}.${EXTRA_CMAKE_MODULES_VERSION_MINOR}.${EXTRA_CMAKE_MODULES_VERSION_PATCH}) - - -set(EXTRA_CMAKE_MODULES_FIND_MODULE_DIR "${rootDir}/@FIND_MODULES_INSTALL_DIR@") - -set(EXTRA_CMAKE_MODULES_MODULE_DIR "${rootDir}/@MODULES_INSTALL_DIR@") - -set(EXTRA_CMAKE_MODULES_KDE_MODULE_DIR "${rootDir}/@KDE_MODULES_INSTALL_DIR@") - -set(EXTRA_CMAKE_MODULES_MODULE_PATH "${EXTRA_CMAKE_MODULES_MODULE_DIR}" "${EXTRA_CMAKE_MODULES_FIND_MODULE_DIR}" "${EXTRA_CMAKE_MODULES_KDE_MODULE_DIR}") - -include("${EXTRA_CMAKE_MODULES_MODULE_DIR}/ECMUseFindModules.cmake") diff --git a/kde-modules/KDECMakeSettings.cmake b/kde-modules/KDECMakeSettings.cmake index 828a0b38..2ff8e029 100644 --- a/kde-modules/KDECMakeSettings.cmake +++ b/kde-modules/KDECMakeSettings.cmake @@ -1,6 +1,7 @@ -# KDE_SKIP_RPATH_SETTINGS -# KDE_SKIP_BUILD_SETTINGS -# KDE_SKIP_TEST_SETTINGS +# The following variables can be set to TRUE to skip parts of the functionality: +# KDE_SKIP_RPATH_SETTINGS +# KDE_SKIP_BUILD_SETTINGS +# KDE_SKIP_TEST_SETTINGS ################# RPATH handling ################################## @@ -80,6 +81,14 @@ if(NOT KDE_SKIP_BUILD_SETTINGS) # Enable automoc in cmake set(CMAKE_AUTOMOC ON) + # under Windows, generate all executables and libraries into + # one common directory, so the executables find their dlls + if(WIN32) + set(ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") + set(LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") + set(RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") + endif() + endif() ################################################################### diff --git a/kde-modules/KDECompilerSettings.cmake b/kde-modules/KDECompilerSettings.cmake index 905e16d6..506bb2c0 100644 --- a/kde-modules/KDECompilerSettings.cmake +++ b/kde-modules/KDECompilerSettings.cmake @@ -473,3 +473,14 @@ endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") add_compiler_export_flags() # from GenerateExportHeader.cmake add_definitions(${_KDE4_PLATFORM_DEFINITIONS}) + +# add some more Qt-related definitions: +add_definitions(-DQT_NO_CAST_TO_ASCII + -DQT_NO_CAST_FROM_ASCII + -DQT_STRICT_ITERATORS + -DQT_NO_URL_CAST_FROM_STRING + -DQT_NO_CAST_FROM_BYTEARRAY + -DQT_NO_KEYWORDS + -DQT_USE_FAST_CONCATENATION + -DQT_USE_FAST_OPERATOR_PLUS + ) diff --git a/modules/ECMConfig.cmake.in b/modules/ECMConfig.cmake.in deleted file mode 100644 index 114ce50e..00000000 --- a/modules/ECMConfig.cmake.in +++ /dev/null @@ -1,18 +0,0 @@ -# Any changes in this file will be overwritten by CMake. - -get_filename_component(myDir ${CMAKE_CURRENT_LIST_FILE} PATH) # get the directory where I myself am -get_filename_component(rootDir ${myDir}/@relInstallDir@ ABSOLUTE) # get the chosen install prefix - -set(@PROJECT_NAME@_VERSION_MAJOR "@ECM_VERSION_MAJOR@") -set(@PROJECT_NAME@_VERSION_MINOR "@ECM_VERSION_MINOR@") -set(@PROJECT_NAME@_VERSION_PATCH "@ECM_VERSION_PATCH@") - -set(@PROJECT_NAME@_INSTALL_PREFIX "${rootDir}") -set(@PROJECT_NAME@_INCLUDE_DIR "${rootDir}/@INCLUDE_INSTALL_DIR@") -set(@PROJECT_NAME@_LIBRARY_DIR "${rootDir}/@LIB_INSTALL_DIR@") - -set(@PROJECT_NAME@_LIBRARY @PROJECT_NAME@) - -set(@PROJECT_NAME@_USE_FILE "${myDir}/@PROJECT_NAME@Use.cmake") - -#include(${myDir}/@PROJECT_NAME@Targets.cmake) diff --git a/modules/ECMQtFramework.cmake b/modules/ECMQtFramework.cmake index 5cc428bd..fdbb6de9 100644 --- a/modules/ECMQtFramework.cmake +++ b/modules/ECMQtFramework.cmake @@ -89,21 +89,6 @@ include(FeatureSummary) -include(${CMAKE_CURRENT_LIST_DIR}/../kde-modules/KDEInstallDirs.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/../kde-modules/KDECMakeSettings.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/../kde-modules/KDECompilerSettings.cmake) - - -add_definitions(-DQT_NO_CAST_TO_ASCII) -add_definitions(-DQT_NO_CAST_FROM_ASCII) -add_definitions(-DQT_STRICT_ITERATORS) -add_definitions(-DQT_NO_URL_CAST_FROM_STRING) -add_definitions(-DQT_NO_CAST_FROM_BYTEARRAY) -add_definitions(-DQT_NO_KEYWORDS) -add_definitions(-DQT_USE_FAST_CONCATENATION) -add_definitions(-DQT_USE_FAST_OPERATOR_PLUS) - - set(LIBRARY_TYPE SHARED) set(ECM_TARGET_DEFAULT_ARGS @@ -115,12 +100,13 @@ set(ECM_TARGET_DEFAULT_ARGS set(CMAKECONFIG_INSTALL_DIR "${CMAKECONFIG_INSTALL_PREFIX}/${PROJECT_NAME}") -file(RELATIVE_PATH relInstallDir "${CMAKE_INSTALL_PREFIX}/${CMAKECONFIG_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}") +include(CMakePackageConfigHelpers) -configure_file( - "${CMAKE_CURRENT_LIST_DIR}/ECMConfig.cmake.in" +configure_package_config_file( + "${CMAKE_CURRENT_LIST_DIR}/ECMQtFrameworkConfig.cmake.in" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}Config.cmake" - @ONLY + INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} + PATH_VARS INCLUDE_INSTALL_DIR LIB_INSTALL_DIR CMAKE_INSTALL_PREFIX ) include(WriteBasicConfigVersionFile) diff --git a/modules/ECMQtFrameworkConfig.cmake.in b/modules/ECMQtFrameworkConfig.cmake.in new file mode 100644 index 00000000..6a63ed9d --- /dev/null +++ b/modules/ECMQtFrameworkConfig.cmake.in @@ -0,0 +1,17 @@ +@PACKAGE_INIT@ + +# Any changes in this file will be overwritten by CMake. + +set(@PROJECT_NAME@_VERSION_MAJOR "@ECM_VERSION_MAJOR@") +set(@PROJECT_NAME@_VERSION_MINOR "@ECM_VERSION_MINOR@") +set(@PROJECT_NAME@_VERSION_PATCH "@ECM_VERSION_PATCH@") + +set(@PROJECT_NAME@_INSTALL_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@") +set_and_check(@PROJECT_NAME@_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") +set_and_check(@PROJECT_NAME@_LIBRARY_DIR "@PACKAGE_LIB_INSTALL_DIR@") + +set(@PROJECT_NAME@_LIBRARY @PROJECT_NAME@) + +set(@PROJECT_NAME@_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Use.cmake") + +#include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") diff --git a/modules/ECMSetVersionVariables.cmake b/modules/ECMSetVersionVariables.cmake deleted file mode 100644 index 561358a8..00000000 --- a/modules/ECMSetVersionVariables.cmake +++ /dev/null @@ -1,42 +0,0 @@ -# - Convenience macro for setting version variables. -# -# ECM_SET_VERSION_VARIABLES(<prefix> <major> <minor> <patch>) -# -# This macro sets the following variables: -# <prefix>_VERSION_MAJOR to <major> -# <prefix>_VERSION_MINOR to <minor> -# <prefix>_VERSION_PATCH to <patch> -# <prefix>_SOVERSION to <major> -# <prefix>_VERSION_STRING to "<major>.<minor>.<patch>" -# -# It is basically a shortcut, so instead of -# -# set(FOO_MAJOR_VERSION 0) -# set(FOO_MINOR_VERSION 0) -# set(FOO_PATCH_VERSION 1) -# set(FOO_SOVERSION ${FOO_SOVERSION} ) -# set(FOO_VERSION ${FOO_MAJOR_VERSION}.${FOO_MINOR_VERSION}.${FOO_PATCH_VERSION}) -# -# you can simply write -# -# ecm_set_version_variables(FOO 0 0 1) -# -# You can do with these variables whatever you want, there is no other automagic or -# anything that depends on them. - -# Copyright 2011 Alexander Neundorf <neundorf@kde.org> -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. - -macro(ecm_set_version_variables _prefix _major _minor _patch) - set(${_prefix}_VERSION_MAJOR ${_major}) - set(${_prefix}_VERSION_MINOR ${_minor}) - set(${_prefix}_VERSION_PATCH ${_patch}) - set(${_prefix}_SOVERSION ${_major}) - set(${_prefix}_VERSION_STRING "${${_prefix}_VERSION_MAJOR}.${${_prefix}_VERSION_MINOR}.${${_prefix}_VERSION_PATCH}") -endmacro() diff --git a/modules/ECMUseFindModules.cmake b/modules/ECMUseFindModules.cmake index 20e4cdcf..f7979e45 100644 --- a/modules/ECMUseFindModules.cmake +++ b/modules/ECMUseFindModules.cmake @@ -1,11 +1,11 @@ -# - Selectively use some of the Find-modules provided by extra-cmake-modules +# - Selectively use some of the Find-modules provided by extra-cmake-modules (ECM) # # ECM_USE_FIND_MODULES(DIR <dir> MODULES module1.cmake module2.cmake .. moduleN.cmake [NO_OVERRIDE] ) # # This macro is automatically available once extra-cmake-modules has been found, so it is not # necessary to include(ECMUseFindModules) explictely. # -# Use this macro instead of simply adding ${EXTRA_CMAKE_MODULES_FIND_MODULE_DIR} to CMAKE_MODULE_PATH +# Use this macro instead of simply adding ${ECM_FIND_MODULE_DIR} to CMAKE_MODULE_PATH # if you want to use only a subset or some specific find-modules coming with extra-cmake-modules. # The given find-modules will be copied to the given directory. This directory should then be added # to CMAKE_MODULE_PATH. The given modules override modules of the same name coming with CMake, except @@ -19,7 +19,7 @@ # CMake version # # Example: -# find_package(extra-cmake-modules 0.0.2 REQUIRED) +# find_package(ECM 0.0.4 REQUIRED) # ecm_use_find_modules(DIR ${CMAKE_BINARY_DIR}/cmake/ Modules FindBlueZ.cmake NO_OVERRIDE ) # set(CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/cmake/ ) # @@ -53,11 +53,11 @@ function(ecm_use_find_modules) file(MAKE_DIRECTORY "${EUFM_DIR}") foreach(file ${EUFM_MODULES}) - if(NOT EXISTS ${EXTRA_CMAKE_MODULES_FIND_MODULE_DIR}/${file} ) - message(FATAL_ERROR "File ${file} not found in ${EXTRA_CMAKE_MODULES_FIND_MODULE_DIR} !") + if(NOT EXISTS ${ECM_FIND_MODULE_DIR}/${file} ) + message(FATAL_ERROR "File ${file} not found in ${ECM_FIND_MODULE_DIR} !") endif() if(NOT EXISTS "${CMAKE_ROOT}/Modules/${file}" OR NOT EUFM_NO_OVERRIDE) - configure_file("${EXTRA_CMAKE_MODULES_FIND_MODULE_DIR}/${file}" "${EUFM_DIR}/${file}" COPYONLY) + configure_file("${ECM_FIND_MODULE_DIR}/${file}" "${EUFM_DIR}/${file}" COPYONLY) endif() endforeach() diff --git a/modules/ECMVersion.cmake b/modules/ECMVersion.cmake index 3b4a0c49..ccac31b4 100644 --- a/modules/ECMVersion.cmake +++ b/modules/ECMVersion.cmake @@ -1,6 +1,6 @@ macro(ecm_version _major _minor _patch) - message(STATUS "************** ecm_version() is obsolete, use ecm_set_version_variables() instead") + message(STATUS "************** ecm_version() is deprecated") set(ECM_VERSION_MAJOR ${_major}) set(ECM_VERSION_MINOR ${_minor}) set(ECM_VERSION_PATCH ${_patch}) |