diff --git a/cmake/toolchain-aarch64-linux-gnu.cmake b/cmake/toolchain-aarch64-linux-gnu.cmake new file mode 100644 index 0000000..7f9d74c --- /dev/null +++ b/cmake/toolchain-aarch64-linux-gnu.cmake @@ -0,0 +1,20 @@ +# ============================================================================ +# CMake toolchain file for cross-compiling to Linux ARM64 (aarch64) +# ============================================================================ +# Usage: +# cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64-linux-gnu.cmake +# ============================================================================ + +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR aarch64) + +# Cross-compiler (Ubuntu: apt install g++-aarch64-linux-gnu) +set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc) +set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++) + +# Search paths: only cross-root for libraries/headers, host for programs +set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)