Skip to content

Commit 237edde

Browse files
committed
Run preprocess-{rust,cpp}-rules in ninja all
1 parent c7f3e96 commit 237edde

1 file changed

Lines changed: 28 additions & 11 deletions

File tree

CMakeLists.txt

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ add_custom_target("check"
137137

138138
file(GLOB rule_src_files ${PROJECT_SOURCE_DIR}/rules/*/src.cpp)
139139
set(cpp_rules_ir_outputs)
140+
set(rust_rules_ir_outputs)
141+
set(rust_rules_inputs)
140142
foreach(_src IN LISTS rule_src_files)
141143
get_filename_component(_rule_dir ${_src} DIRECTORY)
142144
set(_out ${_rule_dir}/ir_src.json)
@@ -147,20 +149,35 @@ foreach(_src IN LISTS rule_src_files)
147149
VERBATIM
148150
)
149151
list(APPEND cpp_rules_ir_outputs ${_out})
152+
if(EXISTS ${_rule_dir}/tgt_unsafe.rs)
153+
list(APPEND rust_rules_ir_outputs ${_rule_dir}/ir_unsafe.json)
154+
list(APPEND rust_rules_inputs ${_rule_dir}/tgt_unsafe.rs)
155+
endif()
156+
if(EXISTS ${_rule_dir}/tgt_refcount.rs)
157+
list(APPEND rust_rules_ir_outputs ${_rule_dir}/ir_refcount.json)
158+
list(APPEND rust_rules_inputs ${_rule_dir}/tgt_refcount.rs)
159+
endif()
150160
endforeach()
151161

152-
add_custom_target("preprocess-cpp-rules" DEPENDS ${cpp_rules_ir_outputs})
162+
add_custom_target("preprocess-cpp-rules" ALL DEPENDS ${cpp_rules_ir_outputs})
163+
164+
file(GLOB_RECURSE rule_preprocessor_sources
165+
${PROJECT_SOURCE_DIR}/rule-preprocessor/src/*.rs)
166+
167+
add_custom_command(
168+
OUTPUT ${rust_rules_ir_outputs}
169+
COMMAND cargo build
170+
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_SOURCE_DIR}/rule-preprocessor
171+
${CMAKE_COMMAND} -E env
172+
CARGO_TARGET_DIR=${PROJECT_SOURCE_DIR}/rule-preprocessor/target
173+
cargo run
174+
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/rules"
175+
DEPENDS ${rust_rules_inputs} ${rule_preprocessor_sources}
176+
VERBATIM
177+
)
153178

154-
add_custom_target("preprocess-rust-rules"
155-
COMMAND cargo build
156-
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_SOURCE_DIR}/rule-preprocessor
157-
${CMAKE_COMMAND} -E env
158-
CARGO_TARGET_DIR=${PROJECT_SOURCE_DIR}/rule-preprocessor/target
159-
cargo run
160-
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/rules"
161-
DEPENDS install-rust-toolchain
162-
USES_TERMINAL
163-
)
179+
add_custom_target("preprocess-rust-rules" ALL
180+
DEPENDS ${rust_rules_ir_outputs} install-rust-toolchain)
164181

165182
add_custom_target("check-rules"
166183
COMMAND find ${PROJECT_SOURCE_DIR}/rules -name "ir_unsafe.json" -delete

0 commit comments

Comments
 (0)