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.35.0") | 3 | set(KF5_VERSION "5.37.0") | ||
4 | project(KSyntaxHighlighting VERSION ${KF5_VERSION}) | 4 | project(KSyntaxHighlighting VERSION ${KF5_VERSION}) | ||
5 | 5 | | |||
6 | find_package(ECM 5.34.0 REQUIRED NO_MODULE) | 6 | find_package(ECM 5.37.0 REQUIRED NO_MODULE) | ||
7 | set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) | 7 | set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) | ||
8 | if(POLICY CMP0063) | 8 | if(POLICY CMP0063) | ||
9 | cmake_policy(SET CMP0063 NEW) | 9 | cmake_policy(SET CMP0063 NEW) | ||
10 | endif() | 10 | endif() | ||
11 | 11 | | |||
12 | include(FeatureSummary) | 12 | include(FeatureSummary) | ||
13 | include(GenerateExportHeader) | 13 | include(GenerateExportHeader) | ||
14 | include(ECMSetupVersion) | 14 | include(ECMSetupVersion) | ||
15 | include(ECMGenerateHeaders) | 15 | include(ECMGenerateHeaders) | ||
16 | include(ECMGeneratePriFile) | 16 | include(ECMGeneratePriFile) | ||
17 | include(CMakePackageConfigHelpers) | 17 | include(CMakePackageConfigHelpers) | ||
18 | include(ECMPoQmTools) | 18 | include(ECMPoQmTools) | ||
19 | include(ECMQtDeclareLoggingCategory) | 19 | include(ECMQtDeclareLoggingCategory) | ||
20 | include(KDEInstallDirs) | 20 | include(KDEInstallDirs) | ||
21 | include(KDEFrameworkCompilerSettings) | 21 | include(KDEFrameworkCompilerSettings) | ||
22 | include(KDECMakeSettings) | 22 | include(KDECMakeSettings) | ||
23 | include(ECMMarkNonGuiExecutable) | 23 | include(ECMMarkNonGuiExecutable) | ||
24 | include(ECMAddQch) | ||||
24 | 25 | | |||
25 | 26 | | |||
26 | ecm_setup_version(PROJECT | 27 | ecm_setup_version(PROJECT | ||
27 | VARIABLE_PREFIX SyntaxHighlighting | 28 | VARIABLE_PREFIX SyntaxHighlighting | ||
28 | VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/ksyntaxhighlighting_version.h" | 29 | VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/ksyntaxhighlighting_version.h" | ||
29 | PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfigVersion.cmake" | 30 | PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfigVersion.cmake" | ||
30 | ) | 31 | ) | ||
31 | 32 | | |||
32 | # | 33 | # | ||
33 | # Dependencies | 34 | # Dependencies | ||
34 | # | 35 | # | ||
35 | set(REQUIRED_QT_VERSION "5.6.0") | 36 | set(REQUIRED_QT_VERSION 5.7.0) | ||
36 | find_package(Qt5 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED COMPONENTS Core Gui Network Test) | 37 | find_package(Qt5 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED COMPONENTS Core Network Test) | ||
38 | option(KSYNTAXHIGHLIGHTING_USE_GUI "Build components depending on Qt5Gui" ON) | ||||
39 | if(KSYNTAXHIGHLIGHTING_USE_GUI) | ||||
40 | find_package(Qt5 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED COMPONENTS Gui) | ||||
41 | endif() | ||||
37 | find_package(Qt5 ${REQUIRED_QT_VERSION} NO_MODULE QUIET OPTIONAL_COMPONENTS Widgets XmlPatterns) | 42 | find_package(Qt5 ${REQUIRED_QT_VERSION} NO_MODULE QUIET OPTIONAL_COMPONENTS Widgets XmlPatterns) | ||
38 | set_package_properties(Qt5 PROPERTIES URL "http://qt-project.org/") | 43 | set_package_properties(Qt5 PROPERTIES URL "http://qt-project.org/") | ||
39 | set_package_properties(Qt5Widgets PROPERTIES PURPOSE "Example application.") | 44 | set_package_properties(Qt5Widgets PROPERTIES PURPOSE "Example application.") | ||
40 | set_package_properties(Qt5XmlPatterns PROPERTIES PURPOSE "Compile-time validation of syntax definition files.") | 45 | set_package_properties(Qt5XmlPatterns PROPERTIES PURPOSE "Compile-time validation of syntax definition files.") | ||
41 | 46 | | |||
42 | find_package(Perl REQUIRED) | 47 | find_package(Perl REQUIRED) | ||
43 | set_package_properties(Perl PROPERTIES PURPOSE "Auto-generate PHP syntax definition files.") | 48 | set_package_properties(Perl PROPERTIES PURPOSE "Auto-generate PHP syntax definition files.") | ||
44 | 49 | | |||
50 | | ||||
51 | # | ||||
52 | # API documentation | ||||
53 | # | ||||
54 | option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) | ||||
55 | add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") | ||||
56 | | ||||
45 | # | 57 | # | ||
46 | # Translations | 58 | # Translations | ||
47 | # | 59 | # | ||
48 | if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") | 60 | if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") | ||
49 | ecm_install_po_files_as_qm(po) | 61 | ecm_install_po_files_as_qm(po) | ||
50 | endif() | 62 | endif() | ||
51 | 63 | | |||
52 | # | 64 | # | ||
53 | # Actually build the stuff | 65 | # Actually build the stuff | ||
54 | # | 66 | # | ||
55 | include_directories(${CMAKE_CURRENT_BINARY_DIR}) | 67 | include_directories(${CMAKE_CURRENT_BINARY_DIR}) | ||
56 | add_subdirectory(data) | 68 | add_subdirectory(data) | ||
57 | add_subdirectory(src) | 69 | add_subdirectory(src) | ||
70 | if(TARGET Qt5::Gui) | ||||
58 | add_subdirectory(examples) | 71 | add_subdirectory(examples) | ||
59 | add_subdirectory(autotests) | 72 | add_subdirectory(autotests) | ||
73 | endif() | ||||
60 | 74 | | |||
61 | # | 75 | # | ||
62 | # CMake package config file generation | 76 | # CMake package config file generation | ||
63 | # | 77 | # | ||
64 | set(CMAKECONFIG_INSTALL_DIR "${CMAKECONFIG_INSTALL_PREFIX}/KF5SyntaxHighlighting") | 78 | set(CMAKECONFIG_INSTALL_DIR "${CMAKECONFIG_INSTALL_PREFIX}/KF5SyntaxHighlighting") | ||
65 | 79 | | |||
80 | if (BUILD_QCH) | ||||
81 | ecm_install_qch_export( | ||||
82 | TARGETS KF5SyntaxHighlighting_QCH | ||||
83 | FILE KF5SyntaxHighlightingQchTargets.cmake | ||||
84 | DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | ||||
85 | COMPONENT Devel | ||||
86 | ) | ||||
87 | set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5SyntaxHighlightingQchTargets.cmake\")") | ||||
88 | endif() | ||||
89 | | ||||
66 | configure_package_config_file( | 90 | configure_package_config_file( | ||
67 | "${CMAKE_CURRENT_SOURCE_DIR}/KF5SyntaxHighlightingConfig.cmake.in" | 91 | "${CMAKE_CURRENT_SOURCE_DIR}/KF5SyntaxHighlightingConfig.cmake.in" | ||
68 | "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfig.cmake" | 92 | "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfig.cmake" | ||
69 | INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | 93 | INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | ||
70 | ) | 94 | ) | ||
71 | 95 | | |||
72 | install(FILES | 96 | install(FILES | ||
73 | "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfig.cmake" | 97 | "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfig.cmake" | ||
74 | "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfigVersion.cmake" | 98 | "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfigVersion.cmake" | ||
75 | DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | 99 | DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | ||
76 | COMPONENT Devel) | 100 | COMPONENT Devel) | ||
77 | 101 | | |||
102 | if(TARGET KF5SyntaxHighlighting) | ||||
78 | install(EXPORT KF5SyntaxHighlightingTargets | 103 | install(EXPORT KF5SyntaxHighlightingTargets | ||
79 | DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | 104 | DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | ||
80 | FILE KF5SyntaxHighlightingTargets.cmake | 105 | FILE KF5SyntaxHighlightingTargets.cmake | ||
81 | NAMESPACE KF5::) | 106 | NAMESPACE KF5::) | ||
107 | endif() | ||||
82 | 108 | | |||
83 | install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ksyntaxhighlighting_version.h" | 109 | install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ksyntaxhighlighting_version.h" | ||
84 | DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF5}" | 110 | DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF5}" | ||
85 | COMPONENT Devel) | 111 | COMPONENT Devel) | ||
86 | install(FILES org_kde_ksyntaxhighlighting.categories DESTINATION ${KDE_INSTALL_CONFDIR}) | 112 | install(FILES org_kde_ksyntaxhighlighting.categories DESTINATION ${KDE_INSTALL_CONFDIR}) | ||
87 | 113 | | |||
88 | feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) | 114 | feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) |