Need help cross compiling to aarch64-unknown-linux-gnu

TLDR; I'm cross compiling my Rust lib to aarch64-unknown-linux-gnu and getting many errors like: CMake Error in src/transaction/CMakeLists.txt: Target "..." requires the language dialect "CXX20" (with compiler extensions). But the current compiler "GNU" does not support this, or CMake does not know the flags to enable it. I don't know how to enable CXX20.

Here's the CI run: fix ci · bgoosmanviz/kuzu_nif@8949fc2 · GitHub

Here's my project: GitHub - bgoosmanviz/kuzu_nif: Adapting KuzuDB's Rust crate to Elixir using Rustler

The lib is in a subfolder: /native/kuzu_ex

The relevant part of .cargo/config.toml

[target.aarch64-unknown-linux-gnu]
rustflags = [
    "-C", "target-feature=-crt-static",
    "-C", "link-arg=-lstdc++",
]
linker = "aarch64-linux-gnu-gcc"

[target.aarch64-unknown-linux-gnu.env]
CXXFLAGS = "-std=c++20 -fconcepts -fPIC"
CFLAGS = "-std=c11 -fPIC"

More context: I'm using the GitHub Action: GitHub - philss/rustler-precompiled-action: Build lib files for the RustlerPrecompiled project. to trigger the compilation.

Here is my release.yml, declaring CI: kuzu_nif/.github/workflows/release.yml at main · bgoosmanviz/kuzu_nif · GitHub

Nevermind, figured out a way! I ended up writing a custom Dockerfile just for aarch64-unknown-linux-gnu. See Cross.toml for the reference.