build: add arm64-cross and riscv64-cross CMake presets

Both cross-toolchains (aarch64-linux-gnu-gcc, riscv64-linux-gnu-gcc) are
confirmed to produce clean Release builds with bench_unified + test suite:
  ARM64:   ELF 64-bit AArch64 (armv8-a), bench_unified + run_selftest
  RISC-V:  ELF 64-bit rv64gc_zba_zbb + lp64d, bench_unified + run_selftest

Usage:
  cmake --preset arm64-cross  -S libs/UltrafastSecp256k1 -B build-arm64
  cmake --preset riscv64-cross -S libs/UltrafastSecp256k1 -B build-riscv64
This commit is contained in:
shrec 2026-03-21 10:40:10 +00:00
parent 79c548f9c8
commit 474b9191ea
No known key found for this signature in database

View File

@ -76,6 +76,36 @@
"SECP256K1_BUILD_TESTS": "ON"
}
},
{
"name": "arm64-cross",
"displayName": "ARM64 Cross (Linux → AArch64)",
"description": "Cross-compile CPU-only release for AArch64/ARM64 using aarch64-linux-gnu-gcc",
"inherits": "base",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../../cmake/arm64-toolchain.cmake",
"SECP256K1_BUILD_CPU": "ON",
"SECP256K1_BUILD_CUDA": "OFF",
"SECP256K1_BUILD_OPENCL": "OFF",
"SECP256K1_BUILD_TESTS": "ON",
"SECP256K1_BUILD_BENCH": "ON"
}
},
{
"name": "riscv64-cross",
"displayName": "RISC-V 64 Cross (Linux → rv64gc)",
"description": "Cross-compile CPU-only release for RISC-V 64-bit (rv64gc_zba_zbb) using riscv64-linux-gnu-gcc",
"inherits": "base",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../../cmake/riscv64-toolchain.cmake",
"SECP256K1_BUILD_CPU": "ON",
"SECP256K1_BUILD_CUDA": "OFF",
"SECP256K1_BUILD_OPENCL": "OFF",
"SECP256K1_BUILD_TESTS": "ON",
"SECP256K1_BUILD_BENCH": "ON"
}
},
{
"name": "cuda-release",
"displayName": "CUDA Release (Linux)",