Skip to content

Commit

Permalink
CMake: regenerate default syntax file only if the language is enabled.
Browse files Browse the repository at this point in the history
  • Loading branch information
skvadrik committed Oct 7, 2024
1 parent 478a502 commit 3423689
Showing 1 changed file with 22 additions and 28 deletions.
50 changes: 22 additions & 28 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,6 @@ ac_check_headers("unistd.h")
# windows POSIX-like API
ac_check_headers("io.h")

# supported languages
set(re2c_langs "c" "d" "go" "haskell" "java" "js" "ocaml" "python" "rust" "v" "zig")

# docs (manpages and help)
set(re2c_manpage_source "${CMAKE_CURRENT_BINARY_DIR}/doc/manpage.rst")
set(re2c_help_source "${CMAKE_CURRENT_BINARY_DIR}/doc/help.rst")
Expand Down Expand Up @@ -161,16 +158,16 @@ add_library(re2c_objects_autogen OBJECT
"${CMAKE_CURRENT_BINARY_DIR}/src/parse/conf_parser.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/parse/conf_parser.h"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_c.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_d.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_go.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_haskell.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_java.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_js.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_ocaml.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_python.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_rust.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_v.cc"
"${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_zig.cc"
"$<$<BOOL:${RE2C_BUILD_RE2D}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_d.cc>"
"$<$<BOOL:${RE2C_BUILD_RE2GO}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_go.cc>"
"$<$<BOOL:${RE2C_BUILD_RE2HS}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_haskell.cc>"
"$<$<BOOL:${RE2C_BUILD_RE2JAVA}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_java.cc>"
"$<$<BOOL:${RE2C_BUILD_RE2JS}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_js.cc>"
"$<$<BOOL:${RE2C_BUILD_RE2OCAML}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_ocaml.cc>"
"$<$<BOOL:${RE2C_BUILD_RE2PY}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_python.cc>"
"$<$<BOOL:${RE2C_BUILD_RE2RUST}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_rust.cc>"
"$<$<BOOL:${RE2C_BUILD_RE2V}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_v.cc>"
"$<$<BOOL:${RE2C_BUILD_RE2ZIG}>:${CMAKE_CURRENT_BINARY_DIR}/src/default_syntax_zig.cc>"
"${re2c_docs}"
)
add_library(re2c_objects_autogen_ver_to_vernum OBJECT
Expand Down Expand Up @@ -246,37 +243,25 @@ re2c_bootstrap_lexer("src/options/parse_opts.re" "src/options/parse_opts.cc")
re2c_bootstrap_lexer("src/parse/lexer.re" "src/parse/lexer.cc" "src/parse/lexer.h")
re2c_bootstrap_parser("src/parse/parser.ypp" "src/parse/parser.cc" "src/parse/parser.h")
re2c_bootstrap_lexer("src/parse/conf_lexer.re" "src/parse/conf_lexer.cc")
re2c_bootstrap_parser("src/parse/conf_parser.ypp" "src/parse/conf_parser.cc"
"src/parse/conf_parser.h")
re2c_bootstrap_parser("src/parse/conf_parser.ypp" "src/parse/conf_parser.cc" "src/parse/conf_parser.h")
re2c_bootstrap_syntax("include/syntax/c" "src/default_syntax_c.cc")

# docs
file(GLOB_RECURSE re2c_docs_sources CONFIGURE_DEPENDS
"examples/*"
"doc/manual/*"
"${re2c_manpage_source}"
)

re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_c}")
re2c_gen_help("${re2c_help_source}" "${re2c_help}" "${re2c_help_bootstrap}")
add_custom_target(docs DEPENDS "${re2c_docs}")

re2c_bootstrap_syntax("include/syntax/c" "src/default_syntax_c.cc")
re2c_bootstrap_syntax("include/syntax/d" "src/default_syntax_d.cc")
re2c_bootstrap_syntax("include/syntax/go" "src/default_syntax_go.cc")
re2c_bootstrap_syntax("include/syntax/haskell" "src/default_syntax_haskell.cc")
re2c_bootstrap_syntax("include/syntax/java" "src/default_syntax_java.cc")
re2c_bootstrap_syntax("include/syntax/js" "src/default_syntax_js.cc")
re2c_bootstrap_syntax("include/syntax/ocaml" "src/default_syntax_ocaml.cc")
re2c_bootstrap_syntax("include/syntax/python" "src/default_syntax_python.cc")
re2c_bootstrap_syntax("include/syntax/rust" "src/default_syntax_rust.cc")
re2c_bootstrap_syntax("include/syntax/v" "src/default_syntax_v.cc")
re2c_bootstrap_syntax("include/syntax/zig" "src/default_syntax_zig.cc")

# re2c
add_executable(re2c ${re2c_sources})

# re2d
if (RE2C_BUILD_RE2D)
re2c_bootstrap_syntax("include/syntax/d" "src/default_syntax_d.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_d}")
add_executable(re2d ${re2c_sources})
target_compile_definitions(re2d PUBLIC
Expand All @@ -287,6 +272,7 @@ endif()

# re2go
if (RE2C_BUILD_RE2GO)
re2c_bootstrap_syntax("include/syntax/go" "src/default_syntax_go.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_go}")
add_executable(re2go ${re2c_sources})
target_compile_definitions(re2go PUBLIC
Expand All @@ -297,6 +283,7 @@ endif()

# re2hs
if (RE2C_BUILD_RE2HS)
re2c_bootstrap_syntax("include/syntax/haskell" "src/default_syntax_haskell.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_haskell}")
add_executable(re2hs ${re2c_sources})
target_compile_definitions(re2hs PUBLIC
Expand All @@ -307,6 +294,7 @@ endif()

# re2java
if (RE2C_BUILD_RE2JAVA)
re2c_bootstrap_syntax("include/syntax/java" "src/default_syntax_java.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_java}")
add_executable(re2java ${re2c_sources})
target_compile_definitions(re2java PUBLIC
Expand All @@ -317,6 +305,7 @@ endif()

# re2js
if (RE2C_BUILD_RE2JS)
re2c_bootstrap_syntax("include/syntax/js" "src/default_syntax_js.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_js}")
add_executable(re2js ${re2c_sources})
target_compile_definitions(re2js PUBLIC
Expand All @@ -327,6 +316,7 @@ endif()

# re2ocaml
if (RE2C_BUILD_RE2OCAML)
re2c_bootstrap_syntax("include/syntax/ocaml" "src/default_syntax_ocaml.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_ocaml}")
add_executable(re2ocaml ${re2c_sources})
target_compile_definitions(re2ocaml PUBLIC
Expand All @@ -337,6 +327,7 @@ endif()

# re2py
if (RE2C_BUILD_RE2PY)
re2c_bootstrap_syntax("include/syntax/python" "src/default_syntax_python.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_python}")
add_executable(re2py ${re2c_sources})
target_compile_definitions(re2py PUBLIC
Expand All @@ -347,6 +338,7 @@ endif()

# re2rust
if (RE2C_BUILD_RE2RUST)
re2c_bootstrap_syntax("include/syntax/rust" "src/default_syntax_rust.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_rust}")
add_executable(re2rust ${re2c_sources})
target_compile_definitions(re2rust PUBLIC
Expand All @@ -357,6 +349,7 @@ endif()

# re2v
if (RE2C_BUILD_RE2V)
re2c_bootstrap_syntax("include/syntax/v" "src/default_syntax_v.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_v}")
add_executable(re2v ${re2c_sources})
target_compile_definitions(re2v PUBLIC
Expand All @@ -367,6 +360,7 @@ endif()

# re2zig
if (RE2C_BUILD_RE2ZIG)
re2c_bootstrap_syntax("include/syntax/zig" "src/default_syntax_zig.cc")
re2c_gen_manpage("${re2c_manpage_source}" "${re2c_manpage_zig}")
add_executable(re2zig ${re2c_sources})
target_compile_definitions(re2zig PUBLIC
Expand Down

0 comments on commit 3423689

Please sign in to comment.