]> gitweb.ps.run Git - toc/blob - antlr4-cpp-runtime-4.9.2-source/demo/CMakeLists.txt
add antlr source code and ReadMe
[toc] / antlr4-cpp-runtime-4.9.2-source / demo / CMakeLists.txt
1 # -*- mode:cmake -*-
2 if(NOT UNIX)
3   message(WARNING "Unsupported operating system")
4 endif()
5
6 set(antlr4-demo-GENERATED_SRC
7    ${PROJECT_SOURCE_DIR}/demo/generated/TLexer.cpp 
8    ${PROJECT_SOURCE_DIR}/demo/generated/TParser.cpp
9    ${PROJECT_SOURCE_DIR}/demo/generated/TParserBaseListener.cpp
10    ${PROJECT_SOURCE_DIR}/demo/generated/TParserBaseVisitor.cpp
11    ${PROJECT_SOURCE_DIR}/demo/generated/TParserListener.cpp
12    ${PROJECT_SOURCE_DIR}/demo/generated/TParserVisitor.cpp
13  )
14
15 foreach(src_file ${antlr4-demo-GENERATED_SRC})
16       set_source_files_properties(
17           ${src_file}
18           PROPERTIES
19           GENERATED TRUE
20           )
21 endforeach(src_file ${antlr4-demo-GENERATED_SRC})
22
23 add_custom_target(GenerateParser DEPENDS ${antlr4-demo-GENERATED_SRC})
24 add_custom_command(OUTPUT ${antlr4-demo-GENERATED_SRC}
25    COMMAND 
26    ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/demo/generated/
27    COMMAND
28    "${Java_JAVA_EXECUTABLE}" -jar ${ANTLR_JAR_LOCATION} -Werror -Dlanguage=Cpp -listener -visitor -o ${PROJECT_SOURCE_DIR}/demo/generated/ -package antlrcpptest ${PROJECT_SOURCE_DIR}/demo/TLexer.g4 ${PROJECT_SOURCE_DIR}/demo/TParser.g4
29    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
30    DEPENDS ${PROJECT_SOURCE_DIR}/demo/TLexer.g4 ${PROJECT_SOURCE_DIR}/demo/TParser.g4
31    )
32
33 include_directories(
34   ${PROJECT_SOURCE_DIR}/runtime/src
35   ${PROJECT_SOURCE_DIR}/runtime/src/misc
36   ${PROJECT_SOURCE_DIR}/runtime/src/atn
37   ${PROJECT_SOURCE_DIR}/runtime/src/dfa
38   ${PROJECT_SOURCE_DIR}/runtime/src/tree
39   ${PROJECT_SOURCE_DIR}/runtime/src/support
40   ${PROJECT_SOURCE_DIR}/demo/generated
41   )
42
43 #file(GLOB antlr4-demo_SRC "${PROJECT_SOURCE_DIR}/demo/generated/*")
44 set(antlr4-demo_SRC 
45   ${PROJECT_SOURCE_DIR}/demo/Linux/main.cpp
46   ${antlr4-demo-GENERATED_SRC}
47   )
48
49 if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
50   set (flags_1 "-Wno-overloaded-virtual")
51 else()
52   set (flags_1 "-MP /wd4251")
53 endif()
54
55 foreach(src_file ${antlr4-demo_SRC})
56       set_source_files_properties(
57           ${src_file}
58           PROPERTIES
59           COMPILE_FLAGS "${COMPILE_FLAGS} ${flags_1}"
60           )
61 endforeach(src_file ${antlr4-demo_SRC})
62
63 add_executable(antlr4-demo
64   ${antlr4-demo_SRC}
65   )
66 #add_precompiled_header(antlr4-demo ${PROJECT_SOURCE_DIR}/runtime/src/antlrcpp-Prefix.h)
67
68 if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
69   target_compile_options(antlr4-demo PRIVATE "/MT$<$<CONFIG:Debug>:d>")
70 endif()
71
72 add_dependencies(antlr4-demo GenerateParser)
73
74 target_link_libraries(antlr4-demo antlr4_static)
75
76 install(TARGETS antlr4-demo 
77         DESTINATION "share" 
78         COMPONENT dev 
79         )
80