-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathriscv64-toolchain.cmake
38 lines (30 loc) · 1.01 KB
/
riscv64-toolchain.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Toolchain file for RISC-V64 on GNU Linux
#
# Use cmake -B <build> --toolchain aarch64-toolchain.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR RISCV64)
set(TOOLCHAIN_PREFIX riscv64-linux-gnu)
execute_process(
COMMAND which ${TOOLCHAIN_PREFIX}-gcc
OUTPUT_VARIABLE BINUTILS_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
get_filename_component(RISCV64_TOOLCHAIN_DIR ${BINUTILS_PATH} DIRECTORY)
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
# Disable compiler checks
#
# CMake will try to run various test programs to determine compiler
# capabilities
#
# Those programs can't run when cross-compiling
set(CMAKE_C_COMPILER_WORKS 1)
set(CMAKE_CXX_COMPILER_WORKS 1)
set(CMAKE_SYSROOT ${ARM_TOOLCHAIN_DIR})
set(CMAKE_FIND_ROOT_PATH ${BINUTILS_PATH})
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 DBT architecture
set(DBT_ARCH RISCV64)