diff --git a/services/tunnelbroker/CMakeLists.txt b/services/tunnelbroker/CMakeLists.txt --- a/services/tunnelbroker/CMakeLists.txt +++ b/services/tunnelbroker/CMakeLists.txt @@ -40,9 +40,11 @@ if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL "/transferred/tunnelbroker") # Inside the docker build contex set(_proto_path "grpc") + set(_shared_path "../shared") else() # Inside repo set(_proto_path "../../native/cpp/CommonCpp/grpc") + set(_shared_path "../../shared") endif() # Shared Comm protos @@ -68,6 +70,11 @@ find_package(OpenSSL REQUIRED) find_package(glog) +# Corrosion and CXX Rust integration +find_package(Corrosion REQUIRED) +include(${_shared_path}/cmake/corrosion-cxx.cmake) +add_library_rust(PATH rust-notifications NAMESPACE rustlib) + file(GLOB_RECURSE SOURCE_CODE "./src/*.cpp") set( @@ -96,6 +103,7 @@ glog::glog double-conversion::double-conversion Folly::folly + rustlib::rust-notifications ) # SERVER diff --git a/services/tunnelbroker/rust-notifications/build.rs b/services/tunnelbroker/rust-notifications/build.rs new file mode 100644 --- /dev/null +++ b/services/tunnelbroker/rust-notifications/build.rs @@ -0,0 +1,4 @@ +fn main() { + let _build = cxx_build::bridge("src/lib.rs").flag_if_supported("-std=c++17"); + println!("cargo:rerun-if-changed=src/lib.rs"); +}