diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,24 +2,30 @@ project(php) -set(KDEVPHP_VERSION_MAJOR 5) -set(KDEVPHP_VERSION_MINOR 1) -set(KDEVPHP_VERSION_PATCH 2) -# KDevplatform dependency version -set( KDEVPLATFORM_VERSION "${KDEVPHP_VERSION_MAJOR}.${KDEVPHP_VERSION_MINOR}.${KDEVPHP_VERSION_PATCH}" ) - -configure_file( "${php_SOURCE_DIR}/kdevphpversion.h.cmake" "${php_BINARY_DIR}/kdevphpversion.h" @ONLY ) - find_package (ECM 0.0.9 REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMAddTests) include(KDEInstallDirs) include(KDECMakeSettings) include(GenerateExportHeader) +include(ECMSetupVersion) include(FeatureSummary) +ecm_setup_version( + 5.1.2 + VARIABLE_PREFIX KDEVPHP + VERSION_HEADER "${php_BINARY_DIR}/kdevphpversion.h" + PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfigVersion.cmake" +) + +# KDevplatform dependency version +set( KDEVPLATFORM_VERSION ${KDEVPHP_VERSION} ) + +set(KDEVPHP_INCLUDE_DIR ${KDE_INSTALL_INCLUDEDIR}/kdev-php) +set(KDEVPHP_PRIVATE_INCLUDE_DIR ${KDEVPHP_INCLUDE_DIR}/private/${KDEVPHP_VERSION_MAJOR}.${KDEVPHP_VERSION_MINOR}) + find_package(Qt5 REQUIRED Core Widgets Test WebKitWidgets) find_package(KF5 REQUIRED COMPONENTS Archive ThreadWeaver TextEditor I18n ItemModels KCMUtils) find_package(KDevPlatform ${KDEVPLATFORM_VERSION} REQUIRED) @@ -34,6 +40,7 @@ include_directories( ${KDEVPGQT_INCLUDE_DIR} + ${CMAKE_SOURCE_DIR} ) add_subdirectory(app_templates) @@ -68,4 +75,25 @@ # not writeable so that the refactoring actions get hidden install(FILES phpfunctions.php DESTINATION ${DATA_INSTALL_DIR}/kdevphpsupport PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) +# create a Config.cmake and a ConfigVersion.cmake file and install them +set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KDevPHP") + +include(ECMPackageConfigHelpers) + +ecm_configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/KDevPHPConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfig.cmake" + INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/KDevPHPConfigVersion.cmake" + DESTINATION "${CMAKECONFIG_INSTALL_DIR}" + COMPONENT Devel +) + +install(EXPORT KDevPHPTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KDevPHPTargets.cmake) +install(FILES ${php_BINARY_DIR}/kdevphpversion.h DESTINATION ${KDEVPHP_INCLUDE_DIR}) + feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/KDevPHPConfig.cmake.in b/KDevPHPConfig.cmake.in new file mode 100644 --- /dev/null +++ b/KDevPHPConfig.cmake.in @@ -0,0 +1,4 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/KDevPHPTargets.cmake") + diff --git a/completion/CMakeLists.txt b/completion/CMakeLists.txt --- a/completion/CMakeLists.txt +++ b/completion/CMakeLists.txt @@ -27,4 +27,4 @@ kdevphpparser ) -install(TARGETS kdevphpcompletion DESTINATION ${INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS kdevphpcompletion EXPORT KDevPHPTargets DESTINATION ${INSTALL_TARGETS_DEFAULT_ARGS}) diff --git a/duchain/CMakeLists.txt b/duchain/CMakeLists.txt --- a/duchain/CMakeLists.txt +++ b/duchain/CMakeLists.txt @@ -48,5 +48,5 @@ kdevphpparser ) -install(TARGETS kdevphpduchain DESTINATION ${INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS kdevphpduchain EXPORT KDevPHPTargets DESTINATION ${INSTALL_TARGETS_DEFAULT_ARGS}) diff --git a/parser/CMakeLists.txt b/parser/CMakeLists.txt --- a/parser/CMakeLists.txt +++ b/parser/CMakeLists.txt @@ -23,6 +23,17 @@ KF5::I18n ) +target_include_directories(kdevphpparser PUBLIC + $ +) + +target_include_directories(kdevphpparser PUBLIC + $ +) + +target_include_directories(kdevphpparser PUBLIC + $ +) if(BUILD_TESTING) add_executable(php-parser main.cpp) target_link_libraries(php-parser @@ -32,4 +43,26 @@ ) endif() -install(TARGETS kdevphpparser DESTINATION ${INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS kdevphpparser EXPORT KDevPHPTargets DESTINATION ${INSTALL_TARGETS_DEFAULT_ARGS}) +install(FILES + parsesession.h + php.g + phplexer.h + tokenstream.h + DESTINATION ${KDEVPHP_INCLUDE_DIR}/parser + COMPONENT Devel +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/parserexport.h + ${CMAKE_CURRENT_BINARY_DIR}/phpast-fwd.h + ${CMAKE_CURRENT_BINARY_DIR}/phpast.h + ${CMAKE_CURRENT_BINARY_DIR}/phpdebugvisitor.h + ${CMAKE_CURRENT_BINARY_DIR}/phpdefaultvisitor.h + ${CMAKE_CURRENT_BINARY_DIR}/phpparser.h + ${CMAKE_CURRENT_BINARY_DIR}/phptokentext.h + ${CMAKE_CURRENT_BINARY_DIR}/phptokentype.h + ${CMAKE_CURRENT_BINARY_DIR}/phpvisitor.h + DESTINATION ${KDEVPHP_PRIVATE_INCLUDE_DIR}/parser + COMPONENT Devel +) diff --git a/parser/php.g b/parser/php.g --- a/parser/php.g +++ b/parser/php.g @@ -70,10 +70,10 @@ -- Additional includes for the parser ------------------------------------------------------------ -%parser_declaration_header "tokenstream.h" +%parser_declaration_header "parser/tokenstream.h" %parser_declaration_header "QtCore/QString" %parser_declaration_header "language/duchain/problem.h" -%parser_declaration_header "phplexer.h" +%parser_declaration_header "parser/phplexer.h" %parser_bits_header "parserdebug.h"