Files
arcs/arcs-sdk/cmake/arcs-toolchain.cmake
2026-08-13 16:50:52 +08:00

45 lines
1.6 KiB
CMake

if (NOT DEFINED NUCLEI_TOOLCHAIN_PATH)
if(DEFINED ENV{NUCLEI_TOOLCHAIN_PATH})
set(NUCLEI_TOOLCHAIN_PATH $ENV{NUCLEI_TOOLCHAIN_PATH})
else()
if (NOT DEFINED LISTENAI_TOOLS_PATH)
message(FATAL_ERROR "NUCLEI_TOOLCHAIN_PATH is not defined")
else()
set(NUCLEI_TOOLCHAIN_PATH ${LISTENAI_TOOLS_PATH}/nuclei-toolchain)
endif()
endif()
endif()
string(REPLACE "\\" "/" NUCLEI_TOOLCHAIN_PATH "${NUCLEI_TOOLCHAIN_PATH}")
set(TOOLCHAIN_PATH ${NUCLEI_TOOLCHAIN_PATH})
set(TOOLCHAIN_PREFIX riscv64-unknown-elf-)
set(TOOLCHAIN_SUFFIX )
if (WIN32)
set(TOOLCHAIN_SUFFIX .exe)
endif()
set(CROSS_COMPILE ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX})
# Use ccache to speed up compilation if it is installed
find_program(CCACHE_PROGRAM ccache)
if(CCACHE_PROGRAM)
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
endif()
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_COMPILER ${CROSS_COMPILE}gcc${TOOLCHAIN_SUFFIX})
set(CMAKE_CXX_COMPILER ${CROSS_COMPILE}g++${TOOLCHAIN_SUFFIX})
set(CMAKE_LINKER ${CROSS_COMPILE}ld${TOOLCHAIN_SUFFIX})
set(CMAKE_OBJCOPY ${CROSS_COMPILE}objcopy${TOOLCHAIN_SUFFIX})
set(CMAKE_OBJDUMP ${CROSS_COMPILE}objdump${TOOLCHAIN_SUFFIX})
set(CMAKE_READELF ${CROSS_COMPILE}readelf${TOOLCHAIN_SUFFIX})
set(CMAKE_SIZE ${CROSS_COMPILE}size${TOOLCHAIN_SUFFIX})
set(CMAKE_NM ${CROSS_COMPILE}nm${TOOLCHAIN_SUFFIX})
if (NOT EXISTS ${CMAKE_C_COMPILER})
message(FATAL_ERROR "Compile not found: ${CMAKE_C_COMPILER}")
endif()
message(STATUS "Found toolchain path: ${NUCLEI_TOOLCHAIN_PATH}")