diff options
| author | KyleMiles <krm504@nyu.edu> | 2022-08-29 16:25:03 -0400 |
|---|---|---|
| committer | KyleMiles <krm504@nyu.edu> | 2022-08-29 17:50:43 -0400 |
| commit | 3ae2ea8f069a448e4e3344d4467b019f860d2560 (patch) | |
| tree | 4415db642a824e5a90a7b74de5074eafb673e587 /rust/CMakeLists.txt | |
| parent | 995ce65e1c59cb276dd9ca77fe216a8b7639db9d (diff) | |
Add Rust docs to CI (see https://dev-rust.binary.ninja 🎉)
Diffstat (limited to 'rust/CMakeLists.txt')
| -rw-r--r-- | rust/CMakeLists.txt | 80 |
1 files changed, 31 insertions, 49 deletions
diff --git a/rust/CMakeLists.txt b/rust/CMakeLists.txt index f38b96b1..9f7fd3a5 100644 --- a/rust/CMakeLists.txt +++ b/rust/CMakeLists.txt @@ -13,69 +13,51 @@ file(GLOB RUST_API_SOURCES src/*.rs) if(CMAKE_BUILD_TYPE MATCHES Debug) - set(CARGO_OPTS --workspace) + set(CARGO_CHECK_OPTS --workspace) + set(CARGO_DOC_OPTS --no-deps) else() - set(CARGO_OPTS --workspace --release) + set(CARGO_CHECK_OPTS --workspace --release) + set(CARGO_DOC_OPTS --no-deps --release) endif() +if (BN_BUILD_NUMBER) + set(RUST_DOC_FLAGS "--crate-version ${BN_MAJOR_VERSION}.${BN_MINOR_VERSION}.${BN_BUILD_NUMBER}") +else() + set(RUST_DOC_FLAGS "") +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_docs ALL DEPENDS ${PROJECT_BINARY_DIR}/target/doc) +add_dependencies(rust_docs binaryninjaapi rust_api) + # Get API source directory so we can find BinaryNinjaCore get_target_property(BN_API_SOURCE_DIR binaryninjaapi SOURCE_DIR) message(STATUS "${BN_API_SOURCE_DIR}") list(APPEND CMAKE_MODULE_PATH "${BN_API_SOURCE_DIR}/cmake") find_program(RUSTUP_PATH rustup REQUIRED HINTS ~/.cargo/bin) -set(RUSTUP_COMMAND ${RUSTUP_PATH} run ${CARGO_API_VERSION} cargo check) - -if(APPLE) - if(UNIVERSAL) - if(CMAKE_BUILD_TYPE MATCHES Debug) - set(AARCH64_LIB_PATH ${PROJECT_BINARY_DIR}/target/aarch64-apple-darwin/debug/${OUTPUT_FILE}) - set(X86_64_LIB_PATH ${PROJECT_BINARY_DIR}/target/x86_64-apple-darwin/debug/${OUTPUT_FILE}) - else() - set(AARCH64_LIB_PATH ${PROJECT_BINARY_DIR}/target/aarch64-apple-darwin/release/${OUTPUT_FILE}) - set(X86_64_LIB_PATH ${PROJECT_BINARY_DIR}/target/x86_64-apple-darwin/release/${OUTPUT_FILE}) - endif() +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 - COMMAND ${CMAKE_COMMAND} -E env - MACOSX_DEPLOYMENT_TARGET=10.14 BINARYNINJADIR=${BN_INSTALL_BIN_DIR} - ${RUSTUP_COMMAND} --target=aarch64-apple-darwin ${CARGO_OPTS} - COMMAND ${CMAKE_COMMAND} -E env - MACOSX_DEPLOYMENT_TARGET=10.14 BINARYNINJADIR=${BN_INSTALL_BIN_DIR} - ${RUSTUP_COMMAND} --target=x86_64-apple-darwin ${CARGO_OPTS} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS ${PLUGIN_SOURCES} ${API_SOURCES}) - else() - add_custom_command( - TARGET rust_api - PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E env - MACOSX_DEPLOYMENT_TARGET=10.14 BINARYNINJADIR=${BN_INSTALL_BIN_DIR} ${RUSTUP_COMMAND} ${CARGO_OPTS} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS ${PLUGIN_SOURCES} ${API_SOURCES}) - endif() -elseif(WIN32) - add_custom_command( - TARGET rust_api - PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BN_INSTALL_BIN_DIR} ${RUSTUP_COMMAND} ${CARGO_OPTS} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS ${PLUGIN_SOURCES} ${API_SOURCES}) -else() - add_custom_command( - TARGET rust_api - PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BN_INSTALL_BIN_DIR} ${RUSTUP_COMMAND} ${CARGO_OPTS} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS ${PLUGIN_SOURCES} ${API_SOURCES}) -endif() +add_custom_command( + TARGET rust_api + PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BN_INSTALL_BIN_DIR} ${RUSTUP_CHECK_COMMAND} ${CARGO_CHECK_OPTS} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + DEPENDS ${RUST_API_SOURCES} +) +add_custom_command( + OUTPUT ${PROJECT_BINARY_DIR}/target/doc + 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} +) if(BN_API_BUILD_EXAMPLES) - add_subdirectory(examples/basic_script) + add_subdirectory(examples/basic_script) endif() |
