@@ -4,13 +4,13 @@ project(rust_api)
44
55set (CARGO_API_VERSION 1.83.0)
66
7- file (GLOB RUST_API_SOURCES CONFIGURE_DEPENDS
7+ file (GLOB_RECURSE RUST_API_SOURCES CONFIGURE_DEPENDS
88 ../binaryninjacore.h
99 binaryninjacore-sys/build .rs
1010 binaryninjacore-sys/Cargo.toml
11- binaryninjacore-sys/src/*
11+ binaryninjacore-sys/src/lib.rs
1212 Cargo.toml
13- src/*/* .rs)
13+ src/*.rs)
1414
1515if (CMAKE_BUILD_TYPE MATCHES Debug)
1616 set (CARGO_CHECK_OPTS --workspace --target -dir=${PROJECT_BINARY_DIR} /target )
2929endif ()
3030
3131# TODO : RUSTDOCFLAGS="--theme binja-dark.css --default-theme=binja-dark"
32-
33- add_custom_target (rust_api ALL DEPENDS )
34- add_dependencies (rust_api binaryninjaapi)
32+ add_custom_target (rust_api ALL DEPENDS ${PROJECT_BINARY_DIR} /rust_api.stamp)
3533
3634add_custom_target (rust_docs ALL DEPENDS ${PROJECT_BINARY_DIR} /target /doc )
3735add_dependencies (rust_docs binaryninjaapi rust_api)
@@ -47,15 +45,18 @@ set(RUSTUP_CHECK_COMMAND ${RUSTUP_PATH} run ${CARGO_API_VERSION} cargo check)
4745set (RUSTUP_DOC_COMMAND ${RUSTUP_PATH} run ${CARGO_API_VERSION} cargo doc )
4846
4947add_custom_command (
50- TARGET rust_api
51- PRE_BUILD
48+ OUTPUT ${PROJECT_BINARY_DIR} /rust_api.stamp
5249 COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BN_INSTALL_BIN_DIR} ${RUSTUP_CHECK_COMMAND} ${CARGO_CHECK_OPTS}
50+ COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_BINARY_DIR} /rust_api.stamp
5351 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
52+ DEPENDS ${RUST_API_SOURCES} $<TARGET_FILE:binaryninjaapi>
53+ COMMENT "Checking Rust API"
54+ VERBATIM
5455)
5556
5657add_custom_command (
5758 OUTPUT ${PROJECT_BINARY_DIR} /target /doc
5859 COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BN_INSTALL_BIN_DIR} RUSTDOCFLAGS=${RUST_DOC_FLAGS} ${RUSTUP_DOC_COMMAND} ${CARGO_DOC_OPTS}
5960 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
6061 DEPENDS ${RUST_API_SOURCES}
61- )
62+ )
0 commit comments