set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR aarch64) # Force the cross-compiler binaries set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc) set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++) # Explicitly redirect root path searching away from your host OS paths set(CMAKE_SYSROOT /usr/aarch64-linux-gnu) set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu) # CRITICAL EXCLUSIONS: Force CMake to ONLY look inside the cross-compiler directories 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) # Ensure Ninja is mapped properly find_program(NINJA_PATH ninja REQUIRED) set(CMAKE_MAKE_PROGRAM ${NINJA_PATH} CACHE FILEPATH "Path to Ninja" FORCE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--allow-shlib-undefined")