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 qt_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 "kdev-pg-parser.cc"
0051                 -d "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-parser.yy"
0052         WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
0053         )
0054 
0055     SET(parser_src ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc)
0056     SET_SOURCE_FILES_PROPERTIES(
0057         ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc
0058         ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.hh
0059         PROPERTIES
0060             GENERATED TRUE
0061             SKIP_AUTOMOC ON
0062         )
0063     SET(OPTIONAL_PARSER_HEADER_DEPENDENCY "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.hh")
0064 ELSE(BISON_EXECUTABLE)
0065     MESSAGE("'bison' was not found!")
0066     MESSAGE("Assuming existence of the generated parser files kdev-pg-parser.[hh,cc]")
0067     SET(parser_src ${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-parser.cc)
0068     SET(OPTIONAL_PARSER_HEADER_DEPENDENCY "")
0069 ENDIF(BISON_EXECUTABLE)
0070 
0071 IF(FLEX_EXECUTABLE)
0072     # Add command to run the lexer.
0073     ADD_CUSTOM_COMMAND(
0074         OUTPUT  "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc"
0075         DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-lexer.ll"
0076                  ${OPTIONAL_PARSER_HEADER_DEPENDENCY}
0077         COMMAND ${FLEX_EXECUTABLE}
0078         ARGS    --yymore --nounistd -o "kdev-pg-lexer.cc"
0079                 "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-lexer.ll"
0080         WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
0081         )
0082 
0083     SET(lexer_src ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc)
0084     SET_SOURCE_FILES_PROPERTIES(
0085         ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc
0086         PROPERTIES
0087             GENERATED TRUE
0088             SKIP_AUTOMOC ON
0089         )
0090 ELSE(FLEX_EXECUTABLE)
0091     MESSAGE("'flex' was not found!")
0092     MESSAGE("Assuming existence of the generated lexer file kdev-pg-lexer.cc")
0093     SET(lexer_src ${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-lexer.cc)
0094 ENDIF(FLEX_EXECUTABLE)
0095 set_source_files_properties(${lexer_src} PROPERTIES COMPILE_FLAGS "-DYY_NO_INPUT -DYY_NO_UNPUT")
0096 
0097 
0098 # tell CMake to generate the executable
0099 ADD_EXECUTABLE(kdev-pg-qt ${parser_src} ${lexer_src} ${kdevpg_srcs} ${kdevpg_rcc_srcs})
0100 ecm_mark_nongui_executable(kdev-pg-qt)
0101 TARGET_LINK_LIBRARIES( kdev-pg-qt Qt${QT_MAJOR_VERSION}::Core)
0102 INSTALL(TARGETS kdev-pg-qt DESTINATION bin )
0103 
0104 # in order to generate only the parser, call "make parser"
0105 ADD_CUSTOM_TARGET(parser echo "Generating the parser"
0106     DEPENDS ${parser_src} ${lexer_src}
0107     )