Add cmake modules for finding cargo and rust
parent
8ac0d8147a
commit
41b78c4257
|
@ -17,7 +17,8 @@ endif()
|
||||||
|
|
||||||
include(FeatureSummary)
|
include(FeatureSummary)
|
||||||
|
|
||||||
find_program(CARGO cargo)
|
find_package(Cargo)
|
||||||
|
find_package(Rust)
|
||||||
|
|
||||||
# Find Qt modules
|
# Find Qt modules
|
||||||
find_package(Qt5 ${QT_MIN_VERSION} CONFIG
|
find_package(Qt5 ${QT_MIN_VERSION} CONFIG
|
||||||
|
@ -57,9 +58,13 @@ endif()
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
||||||
enable_testing()
|
enable_testing()
|
||||||
add_subdirectory(tests)
|
|
||||||
|
|
||||||
if(Qt5Widgets_FOUND AND Qt5Svg_FOUND)
|
if(Cargo_FOUND AND Rust_FOUND)
|
||||||
|
add_subdirectory(tests)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
if(Qt5Widgets_FOUND AND Qt5Svg_FOUND AND Cargo_FOUND AND Rust_FOUND)
|
||||||
add_subdirectory(demo)
|
add_subdirectory(demo)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_program(Cargo_EXECUTABLE cargo)
|
||||||
|
execute_process(COMMAND "${Cargo_EXECUTABLE}" --version
|
||||||
|
OUTPUT_VARIABLE Cargo_VERSION_OUTPUT)
|
||||||
|
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+"
|
||||||
|
Cargo_VERSION "${Cargo_VERSION_OUTPUT}")
|
||||||
|
find_package_handle_standard_args(Cargo
|
||||||
|
REQUIRED_VARS Cargo_EXECUTABLE
|
||||||
|
VERSION_VAR Cargo_VERSION)
|
||||||
|
mark_as_advanced(Cargo_EXECUTABLE)
|
|
@ -0,0 +1,10 @@
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_program(Rust_EXECUTABLE rustc)
|
||||||
|
execute_process(COMMAND "${Rust_EXECUTABLE}" --version
|
||||||
|
OUTPUT_VARIABLE Rust_VERSION_OUTPUT)
|
||||||
|
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+"
|
||||||
|
Rust_VERSION "${Rust_VERSION_OUTPUT}")
|
||||||
|
find_package_handle_standard_args(Rust
|
||||||
|
REQUIRED_VARS Rust_EXECUTABLE
|
||||||
|
VERSION_VAR Rust_VERSION)
|
||||||
|
mark_as_advanced(Rust_EXECUTABLE)
|
|
@ -13,7 +13,7 @@ add_custom_command(
|
||||||
# compile the rust code into a static library
|
# compile the rust code into a static library
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/rust/${RUST_TARGET_DIR}/librust.a"
|
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/rust/${RUST_TARGET_DIR}/librust.a"
|
||||||
COMMAND ${CARGO} build ${RUST_BUILD_FLAG}
|
COMMAND ${Cargo_EXECUTABLE} build ${RUST_BUILD_FLAG}
|
||||||
DEPENDS rust/src/lib.rs
|
DEPENDS rust/src/lib.rs
|
||||||
rust/src/implementation/mod.rs
|
rust/src/implementation/mod.rs
|
||||||
rust/src/implementation/time_series.rs
|
rust/src/implementation/time_series.rs
|
||||||
|
|
|
@ -21,7 +21,7 @@ function(rust_test NAME DIRECTORY)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT "${DIR}/${RUST_TARGET_DIR}/librust.a"
|
OUTPUT "${DIR}/${RUST_TARGET_DIR}/librust.a"
|
||||||
COMMAND ${CARGO} build ${RUST_BUILD_FLAG}
|
COMMAND ${Cargo_EXECUTABLE} build ${RUST_BUILD_FLAG}
|
||||||
DEPENDS "${DIR}/src/lib.rs"
|
DEPENDS "${DIR}/src/lib.rs"
|
||||||
"${DIR}/src/implementation.rs"
|
"${DIR}/src/implementation.rs"
|
||||||
"${DIR}/src/interface.rs"
|
"${DIR}/src/interface.rs"
|
||||||
|
|
Loading…
Reference in New Issue