diff options
| author | Mark Rowe <mark@vector35.com> | 2025-07-01 22:56:05 -0700 |
|---|---|---|
| committer | Mark Rowe <mark@vector35.com> | 2025-07-30 17:15:16 -0700 |
| commit | cce878fb9c4736fff6d9ac263b82618a1f6f95c6 (patch) | |
| tree | 1f5841a47843992f881993708bf4eaa688d33ef5 /rust/CMakeLists.txt | |
| parent | 3e2ace5e8d127d7995a94f1b296cad9152cb7274 (diff) | |
[Rust] Only re-run `cargo check` if inputs have changed
Diffstat (limited to 'rust/CMakeLists.txt')
| -rw-r--r-- | rust/CMakeLists.txt | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/rust/CMakeLists.txt b/rust/CMakeLists.txt index 4bc8f9ad..03ab89bc 100644 --- a/rust/CMakeLists.txt +++ b/rust/CMakeLists.txt @@ -4,13 +4,13 @@ project(rust_api) set(CARGO_API_VERSION 1.83.0) -file(GLOB RUST_API_SOURCES CONFIGURE_DEPENDS +file(GLOB_RECURSE RUST_API_SOURCES CONFIGURE_DEPENDS ../binaryninjacore.h binaryninjacore-sys/build.rs binaryninjacore-sys/Cargo.toml - binaryninjacore-sys/src/* + binaryninjacore-sys/src/lib.rs Cargo.toml - src/*/*.rs) + src/*.rs) if(CMAKE_BUILD_TYPE MATCHES Debug) set(CARGO_CHECK_OPTS --workspace --target-dir=${PROJECT_BINARY_DIR}/target) @@ -29,9 +29,7 @@ else() endif() # TODO : RUSTDOCFLAGS="--theme binja-dark.css --default-theme=binja-dark" - -add_custom_target(rust_api ALL DEPENDS) -add_dependencies(rust_api binaryninjaapi) +add_custom_target(rust_api ALL DEPENDS ${PROJECT_BINARY_DIR}/rust_api.stamp) add_custom_target(rust_docs ALL DEPENDS ${PROJECT_BINARY_DIR}/target/doc) add_dependencies(rust_docs binaryninjaapi rust_api) @@ -47,10 +45,13 @@ set(RUSTUP_CHECK_COMMAND ${RUSTUP_PATH} run ${CARGO_API_VERSION} cargo check) set(RUSTUP_DOC_COMMAND ${RUSTUP_PATH} run ${CARGO_API_VERSION} cargo doc) add_custom_command( - TARGET rust_api - PRE_BUILD + OUTPUT ${PROJECT_BINARY_DIR}/rust_api.stamp COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BN_INSTALL_BIN_DIR} ${RUSTUP_CHECK_COMMAND} ${CARGO_CHECK_OPTS} + COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_BINARY_DIR}/rust_api.stamp WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + DEPENDS ${RUST_API_SOURCES} $<TARGET_FILE:binaryninjaapi> + COMMENT "Checking Rust API" + VERBATIM ) add_custom_command( @@ -58,4 +59,4 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BN_INSTALL_BIN_DIR} RUSTDOCFLAGS=${RUST_DOC_FLAGS} ${RUSTUP_DOC_COMMAND} ${CARGO_DOC_OPTS} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} DEPENDS ${RUST_API_SOURCES} -)
\ No newline at end of file +) |
