diff --git a/examples/cc/CMakeLists.txt b/examples/cc/CMakeLists.txt index 8eb0f19..1853f97 100644 --- a/examples/cc/CMakeLists.txt +++ b/examples/cc/CMakeLists.txt @@ -1,64 +1,60 @@ - -PROJECT(cc_parser) - INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) ADD_DEFINITIONS(-DQT_NO_STL) - # autogenerate the lexer and the parser SET(parser_srcs) FIND_PROGRAM(FLEX_EXECUTABLE NAMES flex PATHS /usr/bin DOC "Flex executable") SET(KDEVPGQT_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/../../kdev-pg/kdev-pg-qt) SET(KDEVPGQT_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../../../include) include(${CMAKE_CURRENT_BINARY_DIR}/../../KDevelop-PG-QtConfig.cmake) kdevpgqt_generate(parser_srcs cc NAMESPACE cc "${CMAKE_CURRENT_SOURCE_DIR}/cc.g" ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) IF(FLEX_EXECUTABLE) # Add command to generate the lexer. ADD_CUSTOM_COMMAND( OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/cclexer.cpp" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/cc.ll" "${CMAKE_CURRENT_SOURCE_DIR}/FlexLexer.h" "${CMAKE_CURRENT_BINARY_DIR}/ccparser.h" COMMAND ${FLEX_EXECUTABLE} ARGS -o"cclexer.cpp" "cc.ll" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) SET(parser_srcs ${CMAKE_CURRENT_SOURCE_DIR}/cclexer.cpp ${parser_srcs}) SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_SOURCE_DIR}/cclexer.cpp GENERATED ) ELSE(FLEX_EXECUTABLE) MESSAGE("--- Assuming existence of the generated lexer file cclexer.cpp") SET(parser_srcs ${CMAKE_CURRENT_SOURCE_DIR}/cclexer.cpp ${parser_srcs}) ENDIF(FLEX_EXECUTABLE) SET(cc_parser_srcs ${parser_srcs} main.cpp dumptree.cpp ) # add definitions, compiler switches, etc. ADD_DEFINITIONS(-Wall -O2) # tell CMake to generate the executable ADD_EXECUTABLE(cc-parser ${cc_parser_srcs}) TARGET_LINK_LIBRARIES( cc-parser Qt5::Core) diff --git a/examples/cool/CMakeLists.txt b/examples/cool/CMakeLists.txt index 7f6b466..62475d9 100644 --- a/examples/cool/CMakeLists.txt +++ b/examples/cool/CMakeLists.txt @@ -1,60 +1,56 @@ - -PROJECT(cool_parser) - INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) REMOVE_DEFINITIONS(-DQT_NO_STL) ADD_DEFINITIONS(-DQT_STL) - # autogenerate the lexer and the parser SET(parser_srcs) SET(KDEVPGQT_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/../../kdev-pg/kdev-pg-qt) SET(KDEVPGQT_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../../../include) include(${CMAKE_CURRENT_BINARY_DIR}/../../KDevelop-PG-QtConfig.cmake) kdevpgqt_generate(parser_srcs cool NAMESPACE cool "${CMAKE_CURRENT_SOURCE_DIR}/cool.g" ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) IF(FLEX_EXECUTABLE) # Add command to generate the lexer. ADD_CUSTOM_COMMAND( OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/cool_lexer.cpp" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/cool_lexer.ll" "${CMAKE_CURRENT_SOURCE_DIR}/cool_lexer.h" "${CMAKE_CURRENT_BINARY_DIR}/coolparser.h" COMMAND ${FLEX_EXECUTABLE} ARGS -o"cool_lexer.cpp" "cool_lexer.ll" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) SET(parser_srcs ${CMAKE_CURRENT_SOURCE_DIR}/cool_lexer.cpp ${parser_srcs}) SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_SOURCE_DIR}/cool_lexer.cpp GENERATED ) ELSE(FLEX_EXECUTABLE) MESSAGE("--- Assuming existence of the generated lexer file cool_lexer.cpp") SET(parser_srcs ${CMAKE_CURRENT_SOURCE_DIR}/cool_lexer.cpp ${parser_srcs}) ENDIF(FLEX_EXECUTABLE) SET(assembled_parser_srcs ${parser_srcs} decoder.cpp cool_io.cpp ) # add definitions, compiler switches, etc. ADD_DEFINITIONS(-Wall -O2) # tell CMake to generate the executable ADD_EXECUTABLE(cool-parser ${assembled_parser_srcs} main.cpp) TARGET_LINK_LIBRARIES( cool-parser Qt5::Core) diff --git a/examples/fact/CMakeLists.txt b/examples/fact/CMakeLists.txt index 7561945..384edaf 100644 --- a/examples/fact/CMakeLists.txt +++ b/examples/fact/CMakeLists.txt @@ -1,30 +1,26 @@ - -PROJECT(fact_parser) - INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) - find_package(KDevelop-PG-Qt) kdevpgqt_generate(_kdevpgList fact NAMESPACE fact DEBUG_VISITOR "${CMAKE_CURRENT_SOURCE_DIR}/fact.g" "${CMAKE_CURRENT_SOURCE_DIR}/factlexer.h" ) set( parser_SRCS ${_kdevpgList} ) SET(assembled_parser_srcs factlexer.cpp ) # add definitions, compiler switches, etc. ADD_DEFINITIONS(-Wall -O2) # tell CMake to generate the executable ADD_EXECUTABLE(fact-parser ${assembled_parser_srcs} ${parser_SRCS} main.cpp) target_link_libraries(fact-parser Qt5::Core) diff --git a/examples/foolisp/CMakeLists.txt b/examples/foolisp/CMakeLists.txt index ef1ff85..924dc39 100644 --- a/examples/foolisp/CMakeLists.txt +++ b/examples/foolisp/CMakeLists.txt @@ -1,16 +1,14 @@ -project(foolisp_lexer) - set(parser_STAT_SRCS foolisptest.cpp ) SET(KDEVPGQT_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/../../kdev-pg/kdev-pg-qt) SET(KDEVPGQT_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../../../include) include(${CMAKE_CURRENT_BINARY_DIR}/../../KDevelop-PG-QtConfig.cmake) kdevpgqt_generate(parser_SRCS foolisp NAMESPACE FooLisp DEBUG_VISITOR TOKEN_TEXT GENERATE_LEXER "${CMAKE_CURRENT_SOURCE_DIR}/foolisp.g" ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_executable( foolisptest ${parser_SRCS} ${parser_STAT_SRCS} ) target_link_libraries( foolisptest Qt5::Core) diff --git a/examples/php/CMakeLists.txt b/examples/php/CMakeLists.txt index cfc6bfc..aaf3b01 100644 --- a/examples/php/CMakeLists.txt +++ b/examples/php/CMakeLists.txt @@ -1,19 +1,17 @@ -project(php_lexer) - set(parser_STAT_SRCS phptest.cpp ) SET(KDEVPGQT_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/../../kdev-pg/kdev-pg-qt) include(${CMAKE_CURRENT_BINARY_DIR}/../../KDevelop-PG-QtConfig.cmake) kdevpgqt_generate(parser_SRCS php NAMESPACE Php DEBUG_VISITOR TOKEN_TEXT GENERATE_LEXER "${CMAKE_CURRENT_SOURCE_DIR}/php.g" ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_definitions(-fexceptions) add_executable( phptest ${parser_SRCS} ${parser_STAT_SRCS} ) target_link_libraries( phptest Qt5::Core) diff --git a/kdev-pg/CMakeLists.txt b/kdev-pg/CMakeLists.txt index 19dc3a4..e86ed8c 100644 --- a/kdev-pg/CMakeLists.txt +++ b/kdev-pg/CMakeLists.txt @@ -1,103 +1,101 @@ -PROJECT(kdevpg) - INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) REMOVE_DEFINITIONS(-DQT_NO_STL) ADD_DEFINITIONS(-DQT_STL) QT5_ADD_RESOURCES(kdevpg_rcc_srcs ../unidata.qrc) kde_enable_exceptions() SET(kdevpg_srcs ASBeautifier.cpp ASFormatter.cpp ASResource.cpp ASEnhancer.cpp kdev-pg.cpp kdev-pg-visitor.cpp kdev-pg-default-visitor.cpp kdev-pg-pretty-printer.cpp kdev-pg-global.cpp kdev-pg-code-gen.cpp kdev-pg-ast-gen.cpp kdev-pg-visitor-gen.cpp kdev-pg-visitor-bits-gen.cpp kdev-pg-default-visitor-gen.cpp kdev-pg-default-visitor-bits-gen.cpp kdev-pg-serialize-visitor-gen.cpp kdev-pg-debug-visitor-gen.cpp kdev-pg-new-visitor-gen.cpp kdev-pg-new-visitor-bits-gen.cpp kdev-pg-token-type-gen.cpp kdev-pg-beautifier.cpp kdev-pg-checker.cpp kdev-pg-inline-checker.cpp kdev-pg-main.cpp kdev-pg-generate.cpp kdev-pg-first.cpp kdev-pg-follow.cpp kdev-pg-bnf-visitor.cpp kdev-pg-clone-tree.cpp kdev-pg-regexp.cpp kdev-pg-unicode-loader.cpp) # Custom support for flex/bison SET(parser_srcs) IF(BISON_EXECUTABLE) # Add command to run the parser. ADD_CUSTOM_COMMAND( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc" "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.hh" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-parser.yy" COMMAND ${BISON_EXECUTABLE} ARGS -o"${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc" -d "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-parser.yy" ) SET(parser_srcs ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc) SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.cc ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.hh GENERATED ) SET(OPTIONAL_PARSER_HEADER_DEPENDENCY "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-parser.hh") ELSE(BISON_EXECUTABLE) MESSAGE("'bison' was not found!") MESSAGE("Assuming existence of the generated parser files kdev-pg-parser.[hh,cc]") SET(parser_srcs ${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-parser.cc) SET(OPTIONAL_PARSER_HEADER_DEPENDENCY "") ENDIF(BISON_EXECUTABLE) IF(FLEX_EXECUTABLE) # Add command to run the lexer. ADD_CUSTOM_COMMAND( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-lexer.ll" ${OPTIONAL_PARSER_HEADER_DEPENDENCY} COMMAND ${FLEX_EXECUTABLE} ARGS --yymore --nounistd -o"${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc" "${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-lexer.ll" ) SET(parser_srcs ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc ${parser_srcs}) SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_BINARY_DIR}/kdev-pg-lexer.cc GENERATED ) ELSE(FLEX_EXECUTABLE) MESSAGE("'flex' was not found!") MESSAGE("Assuming existence of the generated lexer file kdev-pg-lexer.cc") SET(parser_srcs ${CMAKE_CURRENT_SOURCE_DIR}/kdev-pg-lexer.cc ${parser_srcs}) ENDIF(FLEX_EXECUTABLE) # tell CMake to generate the executable ADD_EXECUTABLE(kdev-pg-qt ${parser_srcs} ${kdevpg_srcs} ${kdevpg_rcc_srcs}) TARGET_LINK_LIBRARIES( kdev-pg-qt Qt5::Core) INSTALL(TARGETS kdev-pg-qt DESTINATION bin ) # in order to generate only the parser, call "make parser" ADD_CUSTOM_TARGET(parser echo "Generating the parser" DEPENDS ${parser_srcs} )