42 lines
1.7 KiB
CMake
42 lines
1.7 KiB
CMake
set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES TOOLCHAINS_DIR)
|
|
|
|
SET(CMAKE_SYSTEM_NAME Linux)
|
|
SET(CMAKE_SYSTEM_VERSION 1)
|
|
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
|
|
|
# toolchain location
|
|
set(TOOLCHAIN_URL https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--glibc--stable-2020.08-1.tar.bz2)
|
|
|
|
set(TOOLCHAIN_TAR aarch64--glibc--stable-2020.08-1.tar.bz2)
|
|
|
|
set(TOOLCHAIN_DIR aarch64--glibc--stable-2020.08-1)
|
|
# for autotools
|
|
set(TOOLCHAIN_TARGET aarch64-linux-gnu)
|
|
|
|
set(TOOLCHAIN_NAME aarch64-buildroot-linux-gnu)
|
|
set(TOOLCHAIN_PATH ${CMAKE_CURRENT_LIST_DIR}/toolchains/${TOOLCHAIN_DIR})
|
|
set(TOOLCHAIN_PREFIX ${CMAKE_CURRENT_LIST_DIR}/toolchains/${TOOLCHAIN_DIR}/bin/${TOOLCHAIN_NAME})
|
|
|
|
if(NOT EXISTS ${TOOLCHAIN_PATH})
|
|
execute_process(COMMAND mkdir -p ${CMAKE_CURRENT_LIST_DIR}/toolchains)
|
|
execute_process(COMMAND wget --progress=dot:giga ${TOOLCHAIN_URL})
|
|
execute_process(COMMAND tar -xf ${TOOLCHAIN_TAR} -C ${CMAKE_CURRENT_LIST_DIR}/toolchains)
|
|
endif()
|
|
|
|
# specify the cross compiler
|
|
SET(CMAKE_C_COMPILER ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_NAME}-gcc)
|
|
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_NAME}-g++)
|
|
set(CMAKE_STRIP ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_NAME}-strip CACHE INTERNAL "")
|
|
set(CMAKE_OBJCOPY ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_NAME}-objcopy CACHE INTERNAL "")
|
|
SET(CMAKE_LD ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_NAME}-ld)
|
|
set(CMAKE_AR ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_NAME}-ar CACHE FILEPATH "Archiver")
|
|
|
|
|
|
set(CMAKE_SYSROOT ${TOOLCHAIN_PATH}/${TOOLCHAIN_NAME}/sysroot)
|
|
|
|
# search for programs in the build host directories
|
|
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
# for libraries and headers in the target directories
|
|
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|