- This project is a C++ wrapper for vector
- This project uses cxx to call Rust code from C++, and uses corrosion to integrate the library into CMake.
- use
nightly-aarch64-apple-darwinrust toolchain - Export the following environment variables
VCPKG_DEFAULT_TRIPLET=arm64-osx
VCPKG_DEFAULT_HOST_TRIPLET=arm64-osx
- add submodule for vectorcxx
# only needed to be run for the first time
git submodule update --init --recursive
- configure and build
export VECTORCXX_VCPKG_MANIFEST_DIR=$PWD/ci/dev_image
- install sccache and use it for build caching(optianal)
cargo install sccache
export RUSTC_WRAPPER=/Users/cj/.cargo/bin/sccache
just cmake
# this will use vcpkg manifest mode to install all the dependencies
just build
- patch vector Cargo.toml
# only needed to be installed for the first time user
# remember that tomlpatch requires python version >= 3.10.0
just install_toml_patch
just patch
Commit the Cargo.toml and Cargo.lock in the patch directory to the vectorcxx repo
- re-generate
CMakelists.txtEverytimeCMakelists.txtis re-generated, the following changes need to be made (until we remove all of them out of it): if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")branch for dependencies
- Open terminal with Rosetta
- Set toolchain
just x64_toolchain
# use direnv + .envrc is recommended for env var management
export CMAKE_OSX_ARCHITECTURES=x86_64