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
|
if (KDevelop-PG-Qt_FOUND)
include_directories(
${KDEVPGQT_INCLUDE_DIR}
)
endif()
include_directories(
${CMAKE_CURRENT_BINARY_DIR}/..
)
set(kdevqmakeparser_SRCS
qmakeast.cpp
qmakedriver.cpp
qmakedebugvisitor.cpp
buildastvisitor.cpp
qmakelexer.cpp
qmakeastvisitor.cpp
qmakeastdefaultvisitor.cpp
)
if (KDevelopPGQt_FOUND)
kdeveloppgqt_generate(parser_GEN_SRCS
qmake
NAMESPACE QMake
DUMP_INFO
ENFORCE_COMPATIBLE_ERROR_AWARE_CODE
"${CMAKE_CURRENT_SOURCE_DIR}/qmake.g"
"${CMAKE_CURRENT_SOURCE_DIR}/qmakelexer.h"
)
else()
if(NOT KDevelop-PG-Qt_VERSION VERSION_LESS "2.2.1")
set(_kdevpgqt_generate_extra_args ENFORCE_COMPATIBLE_ERROR_AWARE_CODE)
endif()
kdevpgqt_generate(parser_GEN_SRCS qmake NAMESPACE QMake DUMP_INFO ${_kdevpgqt_generate_extra_args}
"${CMAKE_CURRENT_SOURCE_DIR}/qmake.g"
"${CMAKE_CURRENT_SOURCE_DIR}/qmakelexer.h")
endif()
if(BUILD_TESTING)
add_subdirectory(tests)
endif()
option(BUILD_qmake_parser "Build the qmake-parser debugging tool" OFF)
if(BUILD_qmake_parser)
add_executable(qmake-parser ${qmakecommon_LOG_SRCS} main.cpp)
target_link_libraries(qmake-parser kdevqmakeparser KF6::CoreAddons Qt::Core)
install(TARGETS qmake-parser ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
endif()
add_library(kdevqmakeparser STATIC ${kdevqmakeparser_SRCS} ${parser_GEN_SRCS})
generate_export_header(kdevqmakeparser BASE_NAME parser EXPORT_MACRO_NAME KDEVQMAKEPARSER_EXPORT)
target_link_libraries(kdevqmakeparser
PUBLIC
KDev::Util
PRIVATE
KF6::CoreAddons
KF6::KIOCore
Qt::Core5Compat
)
target_include_directories(kdevqmakeparser PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
if (KDevelopPGQt_FOUND)
target_link_libraries(kdevqmakeparser PUBLIC
KDevelopPGQt::Utils
)
endif()
# for proper include stack reports with gcc when working on the parser:
# remove ENFORCE_COMPATIBLE_ERROR_AWARE_CODE from kdevpgqt_generate
# uncomment next line:
# add_target_compile_flag_if_supported(kdevqmakeparser PRIVATE "-Wno-pedantic")
|