aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2015-11-03 22:31:27 -0700
committerAndrew Kelley <superjoe30@gmail.com>2015-11-03 22:39:35 -0700
commit7cfceeca2d5965baf6dcd45f07ebeaedbe48856f (patch)
treef0622d35db9fb0208343016230af0a7889f66391 /CMakeLists.txt
parent303823b6b8b250580d644bacce5285efda76b731 (diff)
downloadzig-7cfceeca2d5965baf6dcd45f07ebeaedbe48856f.tar.gz
zig-7cfceeca2d5965baf6dcd45f07ebeaedbe48856f.zip
parser generator beginnings
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt24
1 files changed, 24 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 356ff6d3cb..7c8deec0d7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,10 +20,21 @@ include_directories(
${CMAKE_BINARY_DIR}
)
+set(GRAMMAR_TXT "${CMAKE_BINARY_DIR}/simple.txt")
+set(PARSER_CPP "${CMAKE_BINARY_DIR}/parser.cpp")
+
set(ZIG_SOURCES
"${CMAKE_SOURCE_DIR}/src/main.cpp"
"${CMAKE_SOURCE_DIR}/src/util.cpp"
"${CMAKE_SOURCE_DIR}/src/buffer.cpp"
+ "${CMAKE_SOURCE_DIR}/src/tokenizer.cpp"
+ ${PARSER_CPP}
+)
+
+set(PARSERGEN_SOURCES
+ "${CMAKE_SOURCE_DIR}/src/parsergen.cpp"
+ "${CMAKE_SOURCE_DIR}/src/util.cpp"
+ "${CMAKE_SOURCE_DIR}/src/buffer.cpp"
)
set(CONFIGURE_OUT_FILE "${CMAKE_BINARY_DIR}/config.h")
@@ -49,3 +60,16 @@ target_link_libraries(zig LINK_PUBLIC
${LLVM_LIBRARIES}
)
install(TARGETS zig DESTINATION bin)
+
+add_executable(parsergen ${PARSERGEN_SOURCES})
+set_target_properties(parsergen PROPERTIES
+ LINKER_LANGUAGE C
+ COMPILE_FLAGS ${EXE_CFLAGS})
+
+
+add_custom_command(
+ OUTPUT ${PARSER_CPP}
+ COMMAND parsergen ARGS ${GRAMMAR_TXT} ${PARSER_CPP}
+ DEPENDS ${GRAMMAR_TXT} ${PARSERGEN_SOURCES}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+)