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}) | 
