1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
if (BUILD_TESTING)
add_subdirectory(test)
endif()
set(parser_STAT_SRCS
phplexer.cpp
parsesession.cpp
)
kdevpgqt_generate(parser_SRCS php NAMESPACE Php DEBUG_VISITOR TOKEN_TEXT
"${CMAKE_CURRENT_SOURCE_DIR}/php.g"
"${CMAKE_CURRENT_SOURCE_DIR}/phplexer.h"
)
ecm_qt_declare_logging_category(parser_SRCS
HEADER parserdebug.h
IDENTIFIER PARSER
CATEGORY_NAME "kdevelop.plugins.php.parser"
DESCRIPTION "KDevelop plugin: PHP language support - parser"
EXPORT KDEVPHP
)
add_library(kdevphpparser SHARED ${parser_SRCS} ${parser_STAT_SRCS})
generate_export_header(kdevphpparser EXPORT_MACRO_NAME KDEVPHPPARSER_EXPORT
EXPORT_FILE_NAME parserexport.h)
target_link_libraries(kdevphpparser LINK_PRIVATE
KDev::Language
KF6::I18n
)
# hack to make phpdebugvisitor.h (generated at compile time)
# use the correct EXPORT tags when compiling in MinGW
if (MINGW)
add_definitions(-DMAKE_KDEV4PHPPARSER_LIB)
endif (MINGW)
target_include_directories(kdevphpparser
PUBLIC $<INSTALL_INTERFACE:${KDEVPHP_PRIVATE_INCLUDE_DIR}/parser>
PUBLIC $<INSTALL_INTERFACE:${KDEVPHP_PRIVATE_INCLUDE_DIR}>
PUBLIC $<INSTALL_INTERFACE:${KDEVPHP_INCLUDE_DIR}>
)
if (BUILD_TESTING)
add_executable(php-parser main.cpp)
target_link_libraries(php-parser
KDev::Tests
KDev::Language
kdevphpparser
)
endif()
install(TARGETS kdevphpparser EXPORT KDevPHPTargets DESTINATION ${KDE_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
)
|