abouttreesummaryrefslogcommitdiff
path: root/antlr4-cpp-runtime-4.9.2-source/demo/CMakeLists.txt
diff options
context:
space:
mode:
authorPatrick Schönberger2021-08-14 14:56:12 +0200
committerPatrick Schönberger2021-08-14 14:56:12 +0200
commitc6ad2948bb98d42f8e0883ef82cd14cd2d5eda60 (patch)
tree9e83d6d8f61e56f5d3425b8709314d6bdb9315a9 /antlr4-cpp-runtime-4.9.2-source/demo/CMakeLists.txt
parent9f94b672a5dc32da5ad01742bd4e976315a30d9c (diff)
downloadtoc-c6ad2948bb98d42f8e0883ef82cd14cd2d5eda60.tar.gz
toc-c6ad2948bb98d42f8e0883ef82cd14cd2d5eda60.zip
add antlr source code and ReadMeHEADmain
Diffstat (limited to 'antlr4-cpp-runtime-4.9.2-source/demo/CMakeLists.txt')
-rw-r--r--antlr4-cpp-runtime-4.9.2-source/demo/CMakeLists.txt80
1 files changed, 80 insertions, 0 deletions
diff --git a/antlr4-cpp-runtime-4.9.2-source/demo/CMakeLists.txt b/antlr4-cpp-runtime-4.9.2-source/demo/CMakeLists.txt
new file mode 100644
index 0000000..23b4c40
--- /dev/null
+++ b/antlr4-cpp-runtime-4.9.2-source/demo/CMakeLists.txt
@@ -0,0 +1,80 @@
+# -*- mode:cmake -*-
+if(NOT UNIX)
+ message(WARNING "Unsupported operating system")
+endif()
+
+set(antlr4-demo-GENERATED_SRC
+ ${PROJECT_SOURCE_DIR}/demo/generated/TLexer.cpp
+ ${PROJECT_SOURCE_DIR}/demo/generated/TParser.cpp
+ ${PROJECT_SOURCE_DIR}/demo/generated/TParserBaseListener.cpp
+ ${PROJECT_SOURCE_DIR}/demo/generated/TParserBaseVisitor.cpp
+ ${PROJECT_SOURCE_DIR}/demo/generated/TParserListener.cpp
+ ${PROJECT_SOURCE_DIR}/demo/generated/TParserVisitor.cpp
+ )
+
+foreach(src_file ${antlr4-demo-GENERATED_SRC})
+ set_source_files_properties(
+ ${src_file}
+ PROPERTIES
+ GENERATED TRUE
+ )
+endforeach(src_file ${antlr4-demo-GENERATED_SRC})
+
+add_custom_target(GenerateParser DEPENDS ${antlr4-demo-GENERATED_SRC})
+add_custom_command(OUTPUT ${antlr4-demo-GENERATED_SRC}
+ COMMAND
+ ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/demo/generated/
+ COMMAND
+ "${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
+ WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
+ DEPENDS ${PROJECT_SOURCE_DIR}/demo/TLexer.g4 ${PROJECT_SOURCE_DIR}/demo/TParser.g4
+ )
+
+include_directories(
+ ${PROJECT_SOURCE_DIR}/runtime/src
+ ${PROJECT_SOURCE_DIR}/runtime/src/misc
+ ${PROJECT_SOURCE_DIR}/runtime/src/atn
+ ${PROJECT_SOURCE_DIR}/runtime/src/dfa
+ ${PROJECT_SOURCE_DIR}/runtime/src/tree
+ ${PROJECT_SOURCE_DIR}/runtime/src/support
+ ${PROJECT_SOURCE_DIR}/demo/generated
+ )
+
+#file(GLOB antlr4-demo_SRC "${PROJECT_SOURCE_DIR}/demo/generated/*")
+set(antlr4-demo_SRC
+ ${PROJECT_SOURCE_DIR}/demo/Linux/main.cpp
+ ${antlr4-demo-GENERATED_SRC}
+ )
+
+if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+ set (flags_1 "-Wno-overloaded-virtual")
+else()
+ set (flags_1 "-MP /wd4251")
+endif()
+
+foreach(src_file ${antlr4-demo_SRC})
+ set_source_files_properties(
+ ${src_file}
+ PROPERTIES
+ COMPILE_FLAGS "${COMPILE_FLAGS} ${flags_1}"
+ )
+endforeach(src_file ${antlr4-demo_SRC})
+
+add_executable(antlr4-demo
+ ${antlr4-demo_SRC}
+ )
+#add_precompiled_header(antlr4-demo ${PROJECT_SOURCE_DIR}/runtime/src/antlrcpp-Prefix.h)
+
+if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+ target_compile_options(antlr4-demo PRIVATE "/MT$<$<CONFIG:Debug>:d>")
+endif()
+
+add_dependencies(antlr4-demo GenerateParser)
+
+target_link_libraries(antlr4-demo antlr4_static)
+
+install(TARGETS antlr4-demo
+ DESTINATION "share"
+ COMPONENT dev
+ )
+