Skip to content

Commit 88e6e78

Browse files
committed
add riscv gcc toolchain cmake
Change-Id: I1452618481d07810d19adeb8ad788c4ec4b6e2e4
1 parent 9f4cc8f commit 88e6e78

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

cmake/riscv64-spacemit-gcc.cmake

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Copyright (c) 2023 SpacemiT. All rights reserved.
2+
set(CMAKE_SYSTEM_NAME Linux)
3+
SET(CMAKE_SYSTEM_PROCESSOR riscv64)
4+
set(CMAKE_SYSTEM_VERSION 1)
5+
6+
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(riscv)")
7+
message(STATUS "HOST SYSTEM ${CMAKE_HOST_SYSTEM_PROCESSOR}")
8+
else()
9+
set(GNU_MACHINE riscv64-unknown-linux-gnu CACHE STRING "GNU compiler triple")
10+
if(DEFINED ENV{RISCV_ROOT_PATH})
11+
file(TO_CMAKE_PATH $ENV{RISCV_ROOT_PATH} RISCV_ROOT_PATH)
12+
else()
13+
message(FATAL_ERROR "RISCV_ROOT_PATH env must be defined")
14+
endif()
15+
16+
set(RISCV_ROOT_PATH ${RISCV_ROOT_PATH} CACHE STRING "root path to riscv toolchain")
17+
set(CMAKE_C_COMPILER ${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-gnu-gcc)
18+
set(CMAKE_CXX_COMPILER ${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-gnu-g++)
19+
set(CMAKE_STRIP ${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-gnu-strip)
20+
set(CMAKE_FIND_ROOT_PATH "${RISCV_ROOT_PATH}/riscv64-unknown-linux-gnu")
21+
set(CMAKE_SYSROOT "${RISCV_ROOT_PATH}/sysroot")
22+
endif()
23+
24+
if(NOT DEFINED CMAKE_CXX_FLAGS)
25+
set(CMAKE_CXX_FLAGS "-march=rv64gcv_zfh_zba")
26+
endif()
27+
28+
if(NOT DEFINED CMAKE_CXX_FLAGS)
29+
set(CMAKE_C_FLAGS "-march=rv64gcv_zfh_zba")
30+
endif()
31+
32+
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
33+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
34+
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
35+
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
36+
set(CMAKE_C_FLAGS "-march=rv64gcv_zfh_zba -latomic -mabi=lp64d ${CMAKE_C_FLAGS}")
37+
set(CMAKE_CXX_FLAGS "-march=rv64gcv_zfh_zba -latomic -mabi=lp64d ${CXX_FLAGS}")
38+
add_definitions(-D__fp16=_Float16)

0 commit comments

Comments
 (0)