diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,6 @@ cmake_minimum_required(VERSION 3.0) -project(php) - -set(KDEVPHP_VERSION_MAJOR 5) -set(KDEVPHP_VERSION_MINOR 2) -set(KDEVPHP_VERSION_PATCH 40) -# 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 ) +cmake_policy(SET CMP0048 NEW) +project(kdev-php VERSION 5.2.40) find_package (ECM "5.14.0" REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) @@ -18,6 +11,7 @@ include(KDEInstallDirs) include(KDECMakeSettings) include(GenerateExportHeader) +include(ECMSetupVersion) include(FeatureSummary) set(QT_MIN_VERSION "5.5.0") @@ -31,6 +25,20 @@ KCMUtils ) find_package(KDevPlatform ${KDEVPLATFORM_VERSION} CONFIG REQUIRED) + +ecm_setup_version( + ${PROJECT_VERSION} + 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 ${PROJECT_VERSION} ) + +set(KDEVPHP_INCLUDE_DIR ${KDE_INSTALL_INCLUDEDIR}/kdev-php) +set(KDEVPHP_PRIVATE_INCLUDE_DIR ${KDEVPHP_INCLUDE_DIR}/private/${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}) + find_package(KDevelop-PG-Qt REQUIRED) if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") @@ -41,6 +49,7 @@ include_directories( ${KDEVPGQT_INCLUDE_DIR} + ${CMAKE_SOURCE_DIR} ) add_subdirectory(app_templates) @@ -84,4 +93,25 @@ # kdebugsettings file install(FILES kdevphpsupport.categories DESTINATION ${KDE_INSTALL_CONFDIR}) +# 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 @@ -31,4 +31,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 @@ -51,5 +51,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 @@ -32,6 +32,12 @@ add_definitions(-DMAKE_KDEV4PHPPARSER_LIB) endif (MINGW) +target_include_directories(kdevphpparser + PUBLIC $ + PUBLIC $ + PUBLIC $ +) + if (BUILD_TESTING) add_executable(php-parser main.cpp) target_link_libraries(php-parser @@ -41,4 +47,25 @@ ) endif() -install(TARGETS kdevphpparser DESTINATION ${INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS kdevphpparser EXPORT KDevPHPTargets DESTINATION ${INSTALL_TARGETS_DEFAULT_ARGS}) +install(FILES + parsesession.h + 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"