- 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-darwin
rust 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.txt
EverytimeCMakelists.txt
is 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