include(CMakeForceCompiler)
# Get platform dir
get_filename_component(_CURRENT_DIR ${CMAKE_CURRENT_LIST_DIR} REALPATH)
get_filename_component(_PLATFORM_DIR ${_CURRENT_DIR} DIRECTORY)
# Get realpaths of symlinks
get_filename_component(_TOOLCHAIN_DIR ${_PLATFORM_DIR}/toolchain/x86_64-pokysdk-linux REALPATH)
get_filename_component(_SYSROOT_DIR ${_PLATFORM_DIR}/sysroot/aarch64-poky-linux REALPATH)
get_filename_component(_THIRDPARTY_DIR ${_PLATFORM_DIR}/was/aarch64-linux REALPATH)
get_filename_component(_SOC_SDK_TOOLS_DIR ${_PLATFORM_DIR}/soc_sdk_tools REALPATH)
set(_USR_EXT_DIR ${_SYSROOT_DIR}/usr/ext)
# Set cross build system info.
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_HOST_SYSTEM_NAME Linux)
set(CMAKE_CXX_COMPILER ${_TOOLCHAIN_DIR}/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++)
set(CMAKE_C_COMPILER ${_TOOLCHAIN_DIR}/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc)
set(CMAKE_ASM_COMPILER ${_TOOLCHAIN_DIR}/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++)
set(CMAKE_SYSROOT ${_SYSROOT_DIR})
set(CMAKE_FIND_ROOT_PATH
${_SYSROOT_DIR}
${_USR_EXT_DIR}
${_THIRDPARTY_DIR}
${_SOC_SDK_TOOLS_DIR}
${_PLATFORM_DIR}/soc_sdk_libs/rcar-xos/v3.18.0
)
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)
# Set PC file search paths.
set(ENV{PKG_CONFIG_SYSROOT_DIR} ${_SYSROOT_DIR})
set(ENV{PKG_CONFIG_PATH} ${_SYSROOT_DIR}/usr/lib/pkgconfig:${_USR_EXT_DIR}/lib/pkgconfig)
set(TRIPLE aarch64-linux)
if(${CMAKE_VERSION} VERSION_GREATER 3.7.0)
set(FLAGS_SUFFIX _INIT) # 3.7.x introduced new _INIT variables for toolchainfile flags
else()
set(FLAGS_SUFFIX)
endif()
# ASSEMBLER config
set(CMAKE_ASM_FLAGS${FLAGS_SUFFIX} "--sysroot=${_SYSROOT_DIR}")
# C COMPILER config
set(CMAKE_C_COMPILER_TARGET ${TRIPLE})
set(CMAKE_C_FLAGS${FLAGS_SUFFIX} "--sysroot=${_SYSROOT_DIR}")
# C++ COMPILER config
set(CMAKE_CXX_COMPILER_TARGET ${TRIPLE})
set(CMAKE_CXX_FLAGS${FLAGS_SUFFIX} "--sysroot=${_SYSROOT_DIR}")
# Add default package search path.
list(APPEND CMAKE_PREFIX_PATH
${_SYSROOT_DIR}
${_USR_EXT_DIR}
${_PLATFORM_DIR}/soc_sdk_libs/rcar-xos/v3.18.0/cmake
)
list(APPEND CMAKE_MODULE_PATH
${_THIRDPARTY_DIR}/cmake/Modules
)
# SoC vars
set(SOC_NAME v4h)
2025-03-10 CMake简单的toolchain.cmake
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- CMAKE环境变量1)CMAKE_PREFIX_PATH目录list,指定安装的目录前缀,可以被find_pack...
- 参考https://www.jianshu.com/p/ab7a94115d10[https://www.jian...
- cmake中使用PkgConfig去查找库的方法1)首先设置好PKG_CONFIG_PATH,是一个目录list2...
- 在今年两会的热烈讨论中,科技金融创新成为核心议题之一,引发各界高度关注。国家对于科技金融的重视达到新高度,一系列旨...
- 这节课给我的思考是:要明确课题、要对课题有非常清晰的认识,这是战略/策略,然后是用创意,也就是符号、口号和元媒体解...