LPT26x-HSF-4MB-Hilink_14.2..../build/toolchains/riscv32_musl_105.cmake

76 lines
4.6 KiB
CMake
Raw Permalink Normal View History

2025-05-13 22:00:58 +08:00
#===============================================================================
# @brief cmake toolchains
# Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.
#===============================================================================
function(find_env_exe var full_path exe)
if(USE_LOCAL_COMPILER)
file(TO_CMAKE_PATH ${full_path} full_path)
set(${var} ${full_path}/${exe} CACHE PATH "" FORCE)
else()
find_program(${var} ${exe})
endif()
endfunction(find_env_exe)
set(COMPILER_ROOT ${PROJECT_SOURCE_DIR}/tools/bin/compiler/riscv/cc_riscv32_musl_105/cc_riscv32_musl)
set(COMPILER_ROOT_WIN ${PROJECT_SOURCE_DIR}/tools/bin/compiler/riscv/cc_riscv32_musl_105/cc_riscv32_musl_win)
set(OBJDUMP_PATH ${COMPILER_ROOT}/bin)
if(EXISTS ${COMPILER_ROOT})
set(USE_LOCAL_COMPILER TRUE)
else()
set(USE_LOCAL_COMPILER FALSE)
endif()
if(${BUILD_PLATFORM} MATCHES "linux")
MESSAGE(STATUS "BUILD_PLATFORM: " ${BUILD_PLATFORM})
find_env_exe(CMAKE_C_COMPILER ${COMPILER_ROOT}/bin riscv32-linux-musl-gcc)
find_env_exe(CMAKE_ASM_COMPILER ${COMPILER_ROOT}/bin riscv32-linux-musl-gcc)
find_env_exe(CMAKE_CXX_COMPILER ${COMPILER_ROOT}/bin riscv32-linux-musl-g++)
find_env_exe(CMAKE_LINKER ${COMPILER_ROOT}/bin riscv32-linux-musl-ld)
find_env_exe(CMAKE_AR ${COMPILER_ROOT}/bin riscv32-linux-musl-ar)
find_env_exe(CMAKE_C_COMPILER_AR ${COMPILER_ROOT}/bin riscv32-linux-musl-ar)
find_env_exe(CMAKE_ASM_COMPILER_AR ${COMPILER_ROOT}/bin riscv32-linux-musl-ar)
find_env_exe(CMAKE_RANLIB ${COMPILER_ROOT}/bin riscv32-linux-musl-ranlib)
find_env_exe(CMAKE_C_COMPILER_RANLIB ${COMPILER_ROOT}/bin riscv32-linux-musl-ranlib)
find_env_exe(CMAKE_ASM_COMPILER_RANLIB ${COMPILER_ROOT}/bin riscv32-linux-musl-ranlib)
find_env_exe(CMAKE_STRIP ${COMPILER_ROOT}/bin riscv32-linux-musl-strip)
find_env_exe(CMAKE_NM ${COMPILER_ROOT}/bin riscv32-linux-musl-nm)
find_env_exe(CMAKE_OBJCOPY ${COMPILER_ROOT}/bin riscv32-linux-musl-objcopy)
find_env_exe(CMAKE_OBJDUMP ${COMPILER_ROOT}/bin riscv32-linux-musl-objdump)
find_env_exe(CMAKE_READELF ${COMPILER_ROOT}/bin riscv32-linux-musl-readelf)
elseif(${BUILD_PLATFORM} MATCHES "windows")
MESSAGE(STATUS "BUILD_PLATFORM: " ${BUILD_PLATFORM})
set(COMPILER_ROOT ${COMPILER_ROOT_WIN})
find_env_exe(CMAKE_C_COMPILER ${COMPILER_ROOT}/bin riscv32-linux-musl-gcc.exe)
find_env_exe(CMAKE_ASM_COMPILER ${COMPILER_ROOT}/bin riscv32-linux-musl-gcc.exe)
find_env_exe(CMAKE_CXX_COMPILER ${COMPILER_ROOT}/bin riscv32-linux-musl-g++.exe)
find_env_exe(CMAKE_LINKER ${COMPILER_ROOT}/bin riscv32-linux-musl-ld.exe)
find_env_exe(CMAKE_AR ${COMPILER_ROOT}/bin riscv32-linux-musl-ar.exe)
find_env_exe(CMAKE_C_COMPILER_AR ${COMPILER_ROOT}/bin riscv32-linux-musl-ar.exe)
find_env_exe(CMAKE_ASM_COMPILER_AR ${COMPILER_ROOT}/bin riscv32-linux-musl-ar.exe)
find_env_exe(CMAKE_RANLIB ${COMPILER_ROOT}/bin riscv32-linux-musl-ranlib.exe)
find_env_exe(CMAKE_C_COMPILER_RANLIB ${COMPILER_ROOT}/bin riscv32-linux-musl-ranlib.exe)
find_env_exe(CMAKE_ASM_COMPILER_RANLIB ${COMPILER_ROOT}/bin riscv32-linux-musl-ranlib.exe)
find_env_exe(CMAKE_STRIP ${COMPILER_ROOT}/bin riscv32-linux-musl-strip.exe)
find_env_exe(CMAKE_NM ${COMPILER_ROOT}/bin riscv32-linux-musl-nm.exe)
find_env_exe(CMAKE_OBJCOPY ${COMPILER_ROOT}/bin riscv32-linux-musl-objcopy.exe)
find_env_exe(CMAKE_OBJDUMP ${COMPILER_ROOT}/bin riscv32-linux-musl-objdump.exe)
find_env_exe(CMAKE_READELF ${COMPILER_ROOT}/bin riscv32-linux-musl-readelf.exe)
endif()
if(DEFINED CMAKE_C_COMPILER)
STRING(REGEX REPLACE "(.+)/.+" "\\1" CMAKE_C_COMPILER_PATH ${CMAKE_C_COMPILER})
set(LIB_C ${CMAKE_C_COMPILER_PATH}/../lib/gcc/riscv32-linux-musl/7.3.0 CACHE PATH "" FORCE)
set(LIB_GCC ${CMAKE_C_COMPILER_PATH}/../sysroot/usr/lib CACHE PATH "" FORCE)
endif()
set(CMAKE_C_CREATE_STATIC_LIBRARY "<CMAKE_AR> rcD <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_ASM_CREATE_STATIC_LIBRARY "<CMAKE_AR> rcD <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CNAKE_CXX_CREATE_STATIC_LIBRARY "<CMAKE_AR> rcD <TARGET> <LINK_FLAGS> <OBJECTS>")