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 | project(php) | 2 | cmake_policy(SET CMP0048 NEW) | ||
kfunk: `project(kdev-php VERSION 5.1.2)` please. And then just `PROJECT_VERSION` & friends below.
See… | |||||
3 | 3 | project(kdev-php VERSION 5.2.40) | |||
4 | set(KDEVPHP_VERSION_MAJOR 5) | | |||
5 | set(KDEVPHP_VERSION_MINOR 2) | | |||
6 | set(KDEVPHP_VERSION_PATCH 40) | | |||
7 | # KDevplatform dependency version | | |||
8 | set( KDEVPLATFORM_VERSION "${KDEVPHP_VERSION_MAJOR}.${KDEVPHP_VERSION_MINOR}.${KDEVPHP_VERSION_PATCH}" ) | | |||
9 | | ||||
10 | configure_file( "${php_SOURCE_DIR}/kdevphpversion.h.cmake" "${php_BINARY_DIR}/kdevphpversion.h" @ONLY ) | | |||
11 | 4 | | |||
12 | find_package (ECM "5.14.0" REQUIRED NO_MODULE) | 5 | find_package (ECM "5.14.0" REQUIRED NO_MODULE) | ||
13 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) | 6 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) | ||
14 | 7 | | |||
15 | include(KDECompilerSettings NO_POLICY_SCOPE) | 8 | include(KDECompilerSettings NO_POLICY_SCOPE) | ||
16 | include(ECMAddTests) | 9 | include(ECMAddTests) | ||
17 | include(ECMQtDeclareLoggingCategory) | 10 | include(ECMQtDeclareLoggingCategory) | ||
18 | include(KDEInstallDirs) | 11 | include(KDEInstallDirs) | ||
19 | include(KDECMakeSettings) | 12 | include(KDECMakeSettings) | ||
20 | include(GenerateExportHeader) | 13 | include(GenerateExportHeader) | ||
14 | include(ECMSetupVersion) | ||||
21 | include(FeatureSummary) | 15 | include(FeatureSummary) | ||
22 | 16 | | |||
23 | set(QT_MIN_VERSION "5.5.0") | 17 | set(QT_MIN_VERSION "5.5.0") | ||
24 | find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core Widgets Test) | 18 | find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core Widgets Test) | ||
kfunk: We'll have a hard time updating the kdev-php version via scripts then. | |||||
25 | set(KF5_DEP_VERSION "5.15.0") | 19 | set(KF5_DEP_VERSION "5.15.0") | ||
26 | find_package(KF5 ${KF5_DEP_VERSION} REQUIRED COMPONENTS | 20 | find_package(KF5 ${KF5_DEP_VERSION} REQUIRED COMPONENTS | ||
27 | Archive | 21 | Archive | ||
28 | ThreadWeaver | 22 | ThreadWeaver | ||
29 | TextEditor | 23 | TextEditor | ||
30 | I18n | 24 | I18n | ||
31 | KCMUtils | 25 | KCMUtils | ||
32 | ) | 26 | ) | ||
33 | find_package(KDevPlatform ${KDEVPLATFORM_VERSION} CONFIG REQUIRED) | 27 | find_package(KDevPlatform ${KDEVPLATFORM_VERSION} CONFIG REQUIRED) | ||
28 | | ||||
29 | ecm_setup_version( | ||||
30 | ${PROJECT_VERSION} | ||||
31 | VARIABLE_PREFIX KDEVPHP | ||||
32 | VERSION_HEADER "${php_BINARY_DIR}/kdevphpversion.h" | ||||
33 | PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfigVersion.cmake" | ||||
34 | ) | ||||
35 | | ||||
36 | # KDevplatform dependency version | ||||
37 | set( KDEVPLATFORM_VERSION ${PROJECT_VERSION} ) | ||||
38 | | ||||
39 | set(KDEVPHP_INCLUDE_DIR ${KDE_INSTALL_INCLUDEDIR}/kdev-php) | ||||
40 | set(KDEVPHP_PRIVATE_INCLUDE_DIR ${KDEVPHP_INCLUDE_DIR}/private/${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}) | ||||
41 | | ||||
34 | find_package(KDevelop-PG-Qt REQUIRED) | 42 | find_package(KDevelop-PG-Qt REQUIRED) | ||
35 | 43 | | |||
36 | if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") | 44 | if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") | ||
37 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdocumentation") | 45 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdocumentation") | ||
38 | endif() | 46 | endif() | ||
39 | 47 | | |||
40 | add_definitions( -DTRANSLATION_DOMAIN=\"kdevphp\" ) | 48 | add_definitions( -DTRANSLATION_DOMAIN=\"kdevphp\" ) | ||
41 | 49 | | |||
42 | include_directories( | 50 | include_directories( | ||
43 | ${KDEVPGQT_INCLUDE_DIR} | 51 | ${KDEVPGQT_INCLUDE_DIR} | ||
52 | ${CMAKE_SOURCE_DIR} | ||||
kfunk: Why that?
I guess that should be `CMAKE_CURRENT_BINARY_DIR`? | |||||
no, otherwise there are compile errors: [ 27%] Building CXX object parser/CMakeFiles/kdevphpparser.dir/phpparser.cpp.o from /home/xxx/src/kdev-php-build/parser/phpparser.cpp:4: /home/xxx/src/kdev-php-build/parser/phptokentype.h:13:32: fatal error: parser/tokenstream.h: Could not find file or directory This is because headers are installed in related subdirectories e.g. files inside parser subdir are installed in <include-install-root>/parser/... and references other files from this dir with this prefix, see php.g habacker: no, otherwise there are compile errors:
[ 27%] Building CXX object… | |||||
44 | ) | 53 | ) | ||
45 | 54 | | |||
46 | add_subdirectory(app_templates) | 55 | add_subdirectory(app_templates) | ||
47 | add_subdirectory(parser) | 56 | add_subdirectory(parser) | ||
48 | add_subdirectory(duchain) | 57 | add_subdirectory(duchain) | ||
49 | add_subdirectory(completion) | 58 | add_subdirectory(completion) | ||
50 | add_subdirectory(testprovider) | 59 | add_subdirectory(testprovider) | ||
51 | add_subdirectory(docs) | 60 | add_subdirectory(docs) | ||
Show All 27 Lines | |||||
79 | # not writeable so that the refactoring actions get hidden | 88 | # not writeable so that the refactoring actions get hidden | ||
80 | install(FILES phpfunctions.php DESTINATION ${KDE_INSTALL_DATADIR}/kdevphpsupport PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) | 89 | install(FILES phpfunctions.php DESTINATION ${KDE_INSTALL_DATADIR}/kdevphpsupport PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) | ||
81 | 90 | | |||
82 | install(FILES org.kde.kdev-php.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) | 91 | install(FILES org.kde.kdev-php.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) | ||
83 | 92 | | |||
84 | # kdebugsettings file | 93 | # kdebugsettings file | ||
85 | install(FILES kdevphpsupport.categories DESTINATION ${KDE_INSTALL_CONFDIR}) | 94 | install(FILES kdevphpsupport.categories DESTINATION ${KDE_INSTALL_CONFDIR}) | ||
86 | 95 | | |||
96 | # create a Config.cmake and a ConfigVersion.cmake file and install them | ||||
97 | set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KDevPHP") | ||||
98 | | ||||
99 | include(ECMPackageConfigHelpers) | ||||
100 | | ||||
101 | ecm_configure_package_config_file( | ||||
102 | "${CMAKE_CURRENT_SOURCE_DIR}/KDevPHPConfig.cmake.in" | ||||
103 | "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfig.cmake" | ||||
104 | INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} | ||||
105 | ) | ||||
106 | | ||||
107 | install(FILES | ||||
108 | "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfig.cmake" | ||||
109 | "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfigVersion.cmake" | ||||
110 | DESTINATION "${CMAKECONFIG_INSTALL_DIR}" | ||||
111 | COMPONENT Devel | ||||
112 | ) | ||||
113 | | ||||
114 | install(EXPORT KDevPHPTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KDevPHPTargets.cmake) | ||||
115 | install(FILES ${php_BINARY_DIR}/kdevphpversion.h DESTINATION ${KDEVPHP_INCLUDE_DIR}) | ||||
116 | | ||||
87 | feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) | 117 | feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) |
project(kdev-php VERSION 5.1.2) please. And then just PROJECT_VERSION & friends below.
See: https://cmake.org/cmake/help/v3.0/command/project.html