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 )