Warning, /kdevelop/kdev-php/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required(VERSION 3.16)
0002 
0003 # KDE Gear version, managed by release service script
0004 set(RELEASE_SERVICE_VERSION_MAJOR "24")
0005 set(RELEASE_SERVICE_VERSION_MINOR "04")
0006 set(RELEASE_SERVICE_VERSION_MICRO "70")
0007 
0008 # generate patch level from release service version
0009 set(_micro ${RELEASE_SERVICE_VERSION_MICRO})
0010 if (_micro LESS "10")
0011     string(PREPEND _micro "0") # pad with 0
0012 endif()
0013 set(RELEASE_SERVICE_BASED_PATCHLEVEL "${RELEASE_SERVICE_VERSION_MAJOR}${RELEASE_SERVICE_VERSION_MINOR}${_micro}")
0014 
0015 project(kdev-php VERSION "5.7.${RELEASE_SERVICE_BASED_PATCHLEVEL}")
0016 
0017 set(CMAKE_CXX_STANDARD 17)
0018 set(CMAKE_CXX_STANDARD_REQUIRED YES)
0019 set(QT_MIN_VERSION "5.15.0")
0020 set(KF5_DEP_VERSION "5.78.0")
0021 
0022 find_package(Threads)
0023 find_package (ECM ${KF5_DEP_VERSION} REQUIRED NO_MODULE)
0024 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
0025 
0026 include(KDEInstallDirs)
0027 include(KDECMakeSettings)
0028 include(KDECompilerSettings NO_POLICY_SCOPE)
0029 
0030 include(ECMAddTests)
0031 include(ECMQtDeclareLoggingCategory)
0032 include(GenerateExportHeader)
0033 include(CMakePackageConfigHelpers)
0034 include(ECMSetupVersion)
0035 include(FeatureSummary)
0036 
0037 find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core Widgets)
0038 
0039 find_package(KF5 ${KF5_DEP_VERSION} REQUIRED COMPONENTS
0040     ThreadWeaver
0041     TextEditor
0042     I18n
0043     KCMUtils
0044 )
0045 if(BUILD_TESTING)
0046   find_package(Qt5Test ${QT_MIN_VERSION} CONFIG REQUIRED)
0047 endif()
0048 # KDevplatform dependency version
0049 set(KDEVPLATFORM_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
0050 find_package(KDevPlatform ${KDEVPLATFORM_VERSION} CONFIG REQUIRED)
0051 
0052 ecm_setup_version(
0053     ${PROJECT_VERSION}
0054     VARIABLE_PREFIX KDEVPHP
0055     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kdevphpversion.h"
0056     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfigVersion.cmake"
0057 )
0058 
0059 
0060 set(KDEVPHP_INCLUDE_DIR ${KDE_INSTALL_INCLUDEDIR}/kdev-php)
0061 set(KDEVPHP_PRIVATE_INCLUDE_DIR ${KDEVPHP_INCLUDE_DIR}/private/${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR})
0062 
0063 find_package(KDevelop-PG-Qt REQUIRED)
0064 
0065 if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
0066     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdocumentation")
0067 endif()
0068 
0069 add_definitions( -DTRANSLATION_DOMAIN=\"kdevphp\" )
0070 
0071 include_directories(
0072     ${KDEVPGQT_INCLUDE_DIR}
0073     ${CMAKE_SOURCE_DIR}
0074 )
0075 
0076 add_subdirectory(app_templates)
0077 add_subdirectory(parser)
0078 add_subdirectory(duchain)
0079 add_subdirectory(completion)
0080 add_subdirectory(testprovider)
0081 add_subdirectory(docs)
0082 
0083 set(kdevphplanguagesupport_PART_SRCS
0084     phplanguagesupport.cpp
0085     phpparsejob.cpp
0086     phphighlighting.cpp
0087 
0088     codegen/refactoring.cpp
0089 )
0090 ecm_qt_declare_logging_category(kdevphplanguagesupport_PART_SRCS
0091     HEADER phpdebug.h
0092     IDENTIFIER PHP
0093     CATEGORY_NAME "kdevelop.plugins.php"
0094     DESCRIPTION "KDevelop plugin: PHP language support"
0095     EXPORT KDEVPHP
0096 )
0097 
0098 kdevplatform_add_plugin(kdevphplanguagesupport JSON kdevphpsupport.json
0099     SOURCES ${kdevphplanguagesupport_PART_SRCS})
0100 target_link_libraries(kdevphplanguagesupport
0101     KDev::Interfaces
0102     KDev::Language
0103     kdevphpduchain
0104     kdevphpparser
0105     kdevphpcompletion
0106 
0107     KF5::I18n
0108     KF5::TextEditor
0109 
0110     Threads::Threads
0111 )
0112 
0113 # not writeable so that the refactoring actions get hidden
0114 install(FILES phpfunctions.php DESTINATION ${KDE_INSTALL_DATADIR}/kdevphpsupport PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
0115 
0116 install(FILES org.kde.kdev-php.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
0117 
0118 # kdebugsettings file
0119 ecm_qt_install_logging_categories(
0120     EXPORT KDEVPHP
0121     FILE kdevphpsupport.categories
0122     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0123 )
0124 
0125 # create a Config.cmake and a ConfigVersion.cmake file and install them
0126 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KDevPHP")
0127 
0128 configure_package_config_file(
0129   "${CMAKE_CURRENT_SOURCE_DIR}/KDevPHPConfig.cmake.in"
0130   "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfig.cmake"
0131   INSTALL_DESTINATION  ${CMAKECONFIG_INSTALL_DIR}
0132 )
0133 
0134 install(FILES
0135   "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfig.cmake"
0136   "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfigVersion.cmake"
0137   DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0138   COMPONENT Devel
0139 )
0140 
0141 install(EXPORT KDevPHPTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KDevPHPTargets.cmake)
0142 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kdevphpversion.h" DESTINATION ${KDEVPHP_INCLUDE_DIR})
0143 
0144 ki18n_install(po)
0145 
0146 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)