set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_VERSION 1) set(CMAKE_SYSTEM_PROCESSOR riscv) set(TOOLCHAIN_DIR /opt/riscv/tools) set(ARCHITECTURE riscv64-unknown-elf) set(CMAKE_C_COMPILER ${ARCHITECTURE}-gcc set(CMAKE_CXX_COMPILER ${ARCHITECTURE}-g++ set(RISCV_LINUX_SYSROOT /opt/riscv/tools CACHE PATH "RISC-V cross compilation system root") # search path for the cross compile toolchain set(CMAKE_CXX_FLAGS "" CACHE STRING "c++ flags") set(CMAKE_C_FLAGS "" CACHE STRING "c flags") set(CMAKE_SHARED_LINKER_FLAGS "" CACHE STRING "shared linker flags") set(CMAKE_MODULE_LINKER_FLAGS "" CACHE STRING "module linker flags") set(CMAKE_EXE_LINKER_FLAGS "" CACHE STRING "executable linker flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=rv32imac -mabi=ilp32") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=rv32imac -mabi=ilp32") #set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") #set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -march=rv32imac -mabi=ilp32") set(COMPILER_IS_RV32 "1") #flags for the CMakeList.txt #add_definitions(-D_ARM_TEGRA3) # C/C++ preprocessor macro, which will be used in many many files set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR}/${ARCHITECTURE}) include_directories(${TOOLCHAIN_DIR}/${ARCHITECTURE}/include) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)