Warning, /kdevelop/kdevelop-pg-qt/kdev-pg/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
0002 REMOVE_DEFINITIONS(-DQT_NO_STL)
0003 ADD_DEFINITIONS(-DQT_STL)
0004 
0005 QT5_ADD_RESOURCES(kdevpg_rcc_srcs ../unidata.qrc)
0006 kde_enable_exceptions()
0007 
0008 SET(kdevpg_srcs
0009     ASBeautifier.cpp
0010     ASFormatter.cpp
0011     ASResource.cpp
0012     ASEnhancer.cpp
0013     kdev-pg.cpp
0014     kdev-pg-visitor.cpp
0015     kdev-pg-default-visitor.cpp
0016     kdev-pg-pretty-printer.cpp
0017     kdev-pg-global.cpp
0018     kdev-pg-code-gen.cpp
0019     kdev-pg-ast-gen.cpp
0020     kdev-pg-visitor-gen.cpp
0021     kdev-pg-visitor-bits-gen.cpp
0022     kdev-pg-default-visitor-gen.cpp
0023     kdev-pg-default-visitor-bits-gen.cpp
0024     kdev-pg-serialize-visitor-gen.cpp
0025     kdev-pg-debug-visitor-gen.cpp
0026     kdev-pg-new-visitor-gen.cpp
0027     kdev-pg-new-visitor-bits-gen.cpp
0028     kdev-pg-token-type-gen.cpp
0029     kdev-pg-beautifier.cpp
0030     kdev-pg-checker.cpp
0031     kdev-pg-inline-checker.cpp
0032     kdev-pg-main.cpp
0033     kdev-pg-generate.cpp
0034     kdev-pg-first.cpp
0035     kdev-pg-follow.cpp
0036     kdev-pg-bnf-visitor.cpp
0037     kdev-pg-clone-tree.cpp
0038     kdev-pg-regexp.cpp
0039     kdev-pg-unicode-loader.cpp)
0040 
0041 
0042 # Custom support for flex/bison
0043 IF(BISON_EXECUTABLE)
0044     # Add command to run the parser.
0045     ADD_CUSTOM_COMMAND(
0046         OUTPUT  "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc"
0047                 "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.hh"
0048         DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-parser.yy"
0049         COMMAND ${BISON_EXECUTABLE}
0050         ARGS    -o "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc"
0051                 -d "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-parser.yy"
0052         )
0053 
0054     SET(parser_src ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc)
0055     SET_SOURCE_FILES_PROPERTIES(
0056         ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc
0057         ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.hh
0058         PROPERTIES
0059             GENERATED TRUE
0060             SKIP_AUTOMOC ON
0061         )
0062     SET(OPTIONAL_PARSER_HEADER_DEPENDENCY "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.hh")
0063 ELSE(BISON_EXECUTABLE)
0064     MESSAGE("'bison' was not found!")
0065     MESSAGE("Assuming existence of the generated parser files kdev-pg-parser.[hh,cc]")
0066     SET(parser_src ${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-parser.cc)
0067     SET(OPTIONAL_PARSER_HEADER_DEPENDENCY "")
0068 ENDIF(BISON_EXECUTABLE)
0069 
0070 IF(FLEX_EXECUTABLE)
0071     # Add command to run the lexer.
0072     ADD_CUSTOM_COMMAND(
0073         OUTPUT  "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc"
0074         DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-lexer.ll"
0075                  ${OPTIONAL_PARSER_HEADER_DEPENDENCY}
0076         COMMAND ${FLEX_EXECUTABLE}
0077         ARGS    --yymore --nounistd -o "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc"
0078                 "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-lexer.ll"
0079         )
0080 
0081     SET(lexer_src ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc)
0082     SET_SOURCE_FILES_PROPERTIES(
0083         ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc
0084         PROPERTIES
0085             GENERATED TRUE
0086             SKIP_AUTOMOC ON
0087         )
0088 ELSE(FLEX_EXECUTABLE)
0089     MESSAGE("'flex' was not found!")
0090     MESSAGE("Assuming existence of the generated lexer file kdev-pg-lexer.cc")
0091     SET(lexer_src ${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-lexer.cc)
0092 ENDIF(FLEX_EXECUTABLE)
0093 set_source_files_properties(${lexer_src} PROPERTIES COMPILE_FLAGS "-DYY_NO_INPUT -DYY_NO_UNPUT")
0094 
0095 
0096 # tell CMake to generate the executable
0097 ADD_EXECUTABLE(kdev-pg-qt ${parser_src} ${lexer_src} ${kdevpg_srcs} ${kdevpg_rcc_srcs})
0098 ecm_mark_nongui_executable(kdev-pg-qt)
0099 TARGET_LINK_LIBRARIES( kdev-pg-qt Qt5::Core)
0100 INSTALL(TARGETS kdev-pg-qt DESTINATION bin )
0101 
0102 # in order to generate only the parser, call "make parser"
0103 ADD_CUSTOM_TARGET(parser echo "Generating the parser"
0104     DEPENDS ${parser_src} ${lexer_src}
0105     )