Changeset View
Changeset View
Standalone View
Standalone View
CMakeLists.txt
1 | cmake_minimum_required(VERSION 3.0) | 1 | cmake_minimum_required(VERSION 3.0) | ||
---|---|---|---|---|---|
2 | 2 | | |||
3 | set(KF5_VERSION "5.41.0") # handled by release scripts | 3 | set(KF5_VERSION "5.41.0") # handled by release scripts | ||
4 | set(KF5_DEP_VERSION "5.40.0") # handled by release scripts | 4 | set(KF5_DEP_VERSION "5.40.0") # handled by release scripts | ||
5 | project(KAuth VERSION ${KF5_VERSION}) | 5 | project(KAuth VERSION ${KF5_VERSION}) | ||
6 | 6 | | |||
7 | include(FeatureSummary) | 7 | include(FeatureSummary) | ||
8 | find_package(ECM 5.40.0 NO_MODULE) | 8 | find_package(ECM 5.40.0 NO_MODULE) | ||
9 | set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") | 9 | set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") | ||
10 | feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) | 10 | feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) | ||
11 | 11 | | |||
12 | set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) | 12 | set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) | ||
13 | 13 | | |||
14 | set(REQUIRED_QT_VERSION 5.7.0) | 14 | set(REQUIRED_QT_VERSION 5.7.0) | ||
15 | find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets DBus) | 15 | find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED DBus) | ||
16 | option(KAUTH_BUILD_CODEGENERATOR_ONLY "Only build the kauth-policy-gen code generator." OFF) | ||||
17 | if(NOT KAUTH_BUILD_CODEGENERATOR_ONLY) | ||||
18 | find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets) | ||||
19 | endif() | ||||
16 | include(KDEInstallDirs) | 20 | include(KDEInstallDirs) | ||
17 | include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) | 21 | include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) | ||
18 | include(KDECMakeSettings) | 22 | include(KDECMakeSettings) | ||
19 | 23 | | |||
20 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) | 24 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) | ||
21 | 25 | | |||
22 | 26 | | |||
23 | include(GenerateExportHeader) | 27 | include(GenerateExportHeader) | ||
Show All 21 Lines | 48 | else() | |||
45 | set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "${CMAKE_INSTALL_PREFIX}/${KAUTH_HELPER_INSTALL_DIR}") | 49 | set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "${CMAKE_INSTALL_PREFIX}/${KAUTH_HELPER_INSTALL_DIR}") | ||
46 | endif() | 50 | endif() | ||
47 | 51 | | |||
48 | if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") | 52 | if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") | ||
49 | ecm_install_po_files_as_qm(po) | 53 | ecm_install_po_files_as_qm(po) | ||
50 | endif() | 54 | endif() | ||
51 | 55 | | |||
52 | add_subdirectory(src) | 56 | add_subdirectory(src) | ||
57 | if(TARGET Qt5::Widgets) | ||||
53 | add_subdirectory(autotests) | 58 | add_subdirectory(autotests) | ||
54 | add_subdirectory(examples) | 59 | add_subdirectory(examples) | ||
60 | endif() | ||||
55 | 61 | | |||
56 | # create a Config.cmake and a ConfigVersion.cmake file and install them | 62 | # create a Config.cmake and a ConfigVersion.cmake file and install them | ||
57 | set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Auth") | 63 | set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Auth") | ||
58 | 64 | | |||
59 | if (BUILD_QCH) | 65 | if (BUILD_QCH) | ||
60 | ecm_install_qch_export( | 66 | ecm_install_qch_export( | ||
61 | TARGETS KF5Auth_QCH | 67 | TARGETS KF5Auth_QCH | ||
62 | FILE KF5AuthQchTargets.cmake | 68 | FILE KF5AuthQchTargets.cmake | ||
Show All 14 Lines | |||||
77 | 83 | | |||
78 | install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5AuthConfig.cmake" | 84 | install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5AuthConfig.cmake" | ||
79 | "${CMAKE_CURRENT_BINARY_DIR}/KF5AuthConfigVersion.cmake" | 85 | "${CMAKE_CURRENT_BINARY_DIR}/KF5AuthConfigVersion.cmake" | ||
80 | "${CMAKE_CURRENT_SOURCE_DIR}/cmake/KF5AuthMacros.cmake" | 86 | "${CMAKE_CURRENT_SOURCE_DIR}/cmake/KF5AuthMacros.cmake" | ||
81 | DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | 87 | DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | ||
82 | COMPONENT Devel ) | 88 | COMPONENT Devel ) | ||
83 | 89 | | |||
84 | 90 | | |||
91 | if(TARGET KF5Auth) | ||||
kossebau: This installs KF5AuthTargets.cmake based on the condition, but KF5AuthConfig.cmake still… | |||||
Right, the config files don't need to be installed in this case either. This was done for cross-compilation, nothing on the host system will use KAuth via a CMake config file. We do need the tools targets config file though, but that is separate. vkrause: Right, the config files don't need to be installed in this case either. This was done for cross… | |||||
85 | install(EXPORT KF5AuthTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | 92 | install(EXPORT KF5AuthTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | ||
86 | FILE KF5AuthTargets.cmake NAMESPACE KF5:: COMPONENT Devel) | 93 | FILE KF5AuthTargets.cmake NAMESPACE KF5:: COMPONENT Devel) | ||
94 | endif() | ||||
87 | 95 | | |||
88 | if(NOT "${KAUTH_BACKEND_NAME}" STREQUAL "FAKE") | 96 | if(NOT "${KAUTH_BACKEND_NAME}" STREQUAL "FAKE") | ||
89 | install(EXPORT KF5AuthToolsTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | 97 | install(EXPORT KF5AuthToolsTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | ||
90 | FILE KF5AuthToolsTargets.cmake NAMESPACE KF5:: COMPONENT Devel) | 98 | FILE KF5AuthToolsTargets.cmake NAMESPACE KF5:: COMPONENT Devel) | ||
91 | endif() | 99 | endif() | ||
92 | 100 | | |||
93 | install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kauth_version.h | 101 | install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kauth_version.h | ||
94 | DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel ) | 102 | DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel ) | ||
95 | 103 | | |||
96 | 104 | | |||
97 | feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) | 105 | feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) |
This installs KF5AuthTargets.cmake based on the condition, but KF5AuthConfig.cmake still includes the target file unconditionally, so cmake would fail over missing the file when using find_package(KF5Auth).
So are the cmake files not used in the case to support here at all, and all of the cmake config handling should be wrapped?