41 lines
1.4 KiB
CMake
41 lines
1.4 KiB
CMake
SET(CMAKE_SYSTEM_NAME Generic)
|
|
SET(CMAKE_SYSTEM_VERSION 1)
|
|
set(CMAKE_SYSTEM_PROCESSOR RISCV)
|
|
|
|
if(MINGW OR CYGWIN OR WIN32)
|
|
set(WHERE_CMD where)
|
|
set(TOOLCHAIN_SUFFIX ".exe")
|
|
elseif(UNIX OR APPLE)
|
|
set(WHERE_CMD which)
|
|
set(TOOLCHAIN_SUFFIX "")
|
|
endif()
|
|
|
|
set(TOOLCHAIN_PREFIX riscv64-unknown-elf-)
|
|
|
|
execute_process(
|
|
COMMAND ${WHERE_CMD} ${TOOLCHAIN_PREFIX}gcc
|
|
OUTPUT_VARIABLE TOOLCHAIN_PATH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
message(STATUS "TOOLCHAIN_PATH:${TOOLCHAIN_PATH}")
|
|
# specify cross compilers and tools
|
|
SET(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc${TOOLCHAIN_SUFFIX} CACHE INTERNAL "")
|
|
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++${TOOLCHAIN_SUFFIX} CACHE INTERNAL "")
|
|
set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}gcc${TOOLCHAIN_SUFFIX} CACHE INTERNAL "")
|
|
set(CMAKE_LINKER ${TOOLCHAIN_PREFIX}ld${TOOLCHAIN_SUFFIX} CACHE INTERNAL "")
|
|
set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy CACHE INTERNAL "")
|
|
set(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}objdump CACHE INTERNAL "")
|
|
set(SIZE ${TOOLCHAIN_PREFIX}size CACHE INTERNAL "")
|
|
|
|
set(CMAKE_C_COMPILER_WORKS 1)
|
|
set(CMAKE_CXX_COMPILER_WORKS 1)
|
|
|
|
set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_PATH})
|
|
# 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)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|