diff --git a/scripts/build-rust-native-library.sh b/scripts/build-rust-native-library.sh index 22fb75f86..276f380e0 100755 --- a/scripts/build-rust-native-library.sh +++ b/scripts/build-rust-native-library.sh @@ -1,37 +1,37 @@ #!/usr/bin/env bash set -euxo pipefail COMM_NIX_PATH="$HOME/.cache/comm/path" PRJ_ROOT="$(git rev-parse --show-toplevel)" # If in nix environment, re-expose nix PATH if [[ -f "$COMM_NIX_PATH" ]]; then # shellcheck source=/dev/null source "$COMM_NIX_PATH" fi # The $PATH used by Xcode likely won't contain Cargo, fix that. # In addition, the $PATH used by XCode has lots of Apple-specific # developer tools that your Cargo isn't expecting to use, fix that. # Note: This assumes a default `rustup` setup and default path. build_path="$HOME/.cargo/bin:/usr/local/bin:/usr/bin:/bin${PATH:+:}$PATH" # cd to Cargo project cd "${SRCROOT}/../native_rust_library" || exit # Ensure rust tooling is available env PATH="${build_path}" "$PRJ_ROOT/scripts/ensure_rustup_setup.sh" # Set C++ standard and build cxx bridge export CXXFLAGS="-std=c++14" -env PATH="${build_path}" cargo build +env PATH="${build_path}" cargo build --release # Build universal static library (works on simulator and iOS) env PATH="${build_path}" cargo lipo --release # Unset the flag specifying C++ standard unset CXXFLAGS # Copy the CXX files to the cargo project root to make them # available to XCode cp "$(readlink target/cxxbridge/native_rust_library/src/lib.rs.cc)" . cp "$(readlink target/cxxbridge/native_rust_library/src/lib.rs.h)" . cp "$(readlink target/cxxbridge/rust/cxx.h)" . diff --git a/services/tunnelbroker/Dockerfile b/services/tunnelbroker/Dockerfile index 58ba0f21d..9e3bdc73d 100644 --- a/services/tunnelbroker/Dockerfile +++ b/services/tunnelbroker/Dockerfile @@ -1,48 +1,48 @@ FROM commapp/services-base:1.3.2 ENV PATH=/root/.cargo/bin:$PATH ARG COMM_TEST_SERVICES ARG COMM_SERVICES_SANDBOX ENV COMM_TEST_SERVICES=${COMM_TEST_SERVICES} ENV COMM_SERVICES_SANDBOX=${COMM_SERVICES_SANDBOX} # Install Curl RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl # Install Rust RUN curl https://sh.rustup.rs -sSf | sh -s -- -y # Copying of the installation scripts WORKDIR /transferred/services/tunnelbroker/docker COPY services/tunnelbroker/docker . # Install SDKs RUN ./install_amqp_cpp.sh RUN ./install_libuv.sh # Copying of the shared code WORKDIR /transferred COPY services/lib/src/ services/lib/src/ COPY shared/ shared/ # Copying of the Tunnelbroker code WORKDIR /transferred/services/tunnelbroker COPY services/tunnelbroker/ . # Build C++ library gTests by CMake WORKDIR /transferred/services/tunnelbroker/src/libcpp/test RUN cmake -B build . && make -C build -j$(nproc) # Build Rust by Cargo WORKDIR /transferred/services/tunnelbroker -RUN cargo build +RUN cargo build --release CMD if [ "$COMM_TEST_SERVICES" -eq 1 ];\ then\ src/libcpp/test/build/bin/runTests --gtest_filter='-AmqpManager*:DatabaseManager*'\ && cargo test;\ else\ cargo run;\ fi