File: CMakeLists.txt

package info (click to toggle)
kdevelop 4%3A25.04.0-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 73,508 kB
  • sloc: cpp: 291,803; python: 4,322; javascript: 3,518; sh: 1,316; ansic: 703; xml: 414; php: 95; lisp: 66; makefile: 31; sed: 12
file content (68 lines) | stat: -rw-r--r-- 2,116 bytes parent folder | download
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")