diff options
author | Jan Niklas Hasse <jhasse@bixense.com> | 2019-05-10 15:03:20 (GMT) |
---|---|---|
committer | Jan Niklas Hasse <jhasse@bixense.com> | 2019-08-28 08:01:32 (GMT) |
commit | 691b821c9046eafa73f12335a8c3150fd9db1595 (patch) | |
tree | 54920735f3f0a44f0be6a1a8985f89e854f5fe47 /CMakeLists.txt | |
parent | ec6e7c7a77c8010d42ae0b27b83a097a5875fc4e (diff) | |
download | Ninja-691b821c9046eafa73f12335a8c3150fd9db1595.zip Ninja-691b821c9046eafa73f12335a8c3150fd9db1595.tar.gz Ninja-691b821c9046eafa73f12335a8c3150fd9db1595.tar.bz2 |
CMake: Support building without re2c
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d313342..004d059 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,15 +7,21 @@ else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -fdiagnostics-color") endif() -# the depfile parser and ninja lexers are generated using re2c. -function(re2c IN OUT) - add_custom_command(DEPENDS ${IN} OUTPUT ${OUT} - COMMAND re2c -b -i --no-generation-date -o ${OUT} ${IN} - ) -endfunction() -re2c(${CMAKE_SOURCE_DIR}/src/depfile_parser.in.cc ${CMAKE_BINARY_DIR}/depfile_parser.cc) -re2c(${CMAKE_SOURCE_DIR}/src/lexer.in.cc ${CMAKE_BINARY_DIR}/lexer.cc) -add_library(libninja-re2c OBJECT ${CMAKE_BINARY_DIR}/depfile_parser.cc ${CMAKE_BINARY_DIR}/lexer.cc) +find_program(RE2C re2c) +if(RE2C) + # the depfile parser and ninja lexers are generated using re2c. + function(re2c IN OUT) + add_custom_command(DEPENDS ${IN} OUTPUT ${OUT} + COMMAND ${RE2C} -b -i --no-generation-date -o ${OUT} ${IN} + ) + endfunction() + re2c(${CMAKE_SOURCE_DIR}/src/depfile_parser.in.cc ${CMAKE_BINARY_DIR}/depfile_parser.cc) + re2c(${CMAKE_SOURCE_DIR}/src/lexer.in.cc ${CMAKE_BINARY_DIR}/lexer.cc) + add_library(libninja-re2c OBJECT ${CMAKE_BINARY_DIR}/depfile_parser.cc ${CMAKE_BINARY_DIR}/lexer.cc) +else() + message(WARNING "re2c was not found; changes to src/*.in.cc will not affect your build.") + add_library(libninja-re2c OBJECT src/depfile_parser.cc src/lexer.cc) +endif() target_include_directories(libninja-re2c PRIVATE src) # Core source files all build into ninja library. |