53 lines
2.2 KiB
Plaintext
53 lines
2.2 KiB
Plaintext
# Copyright 2022 Google LLC
|
|
#
|
|
# This source code is licensed under the BSD-style license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
SET(CMAKE_SYSTEM_NAME Linux)
|
|
SET(CMAKE_SYSTEM_PROCESSOR riscv64)
|
|
|
|
SET(VLEN "512" CACHE STRING "Vector Length for QEMU.")
|
|
IF(NOT VLEN MATCHES "^(32|64|128|256|512|1024|2048|4096|8192|16384|32768|65536)$")
|
|
MESSAGE(FATAL_ERROR "User specified VLEN=${VLEN} is invalid.")
|
|
ENDIF()
|
|
|
|
IF(NOT RISCV_TOOLCHAIN_ROOT)
|
|
SET(CMAKE_C_COMPILER "riscv64-linux-gnu-gcc")
|
|
SET(CMAKE_ASM_COMPILER "riscv64-linux-gnu-gcc")
|
|
SET(CMAKE_CXX_COMPILER "riscv64-linux-gnu-g++")
|
|
|
|
SET(CMAKE_FIND_ROOT_PATH "/usr/riscv64-linux-gnu")
|
|
SET(CMAKE_INCLUDE_PATH "/usr/include/riscv64-linux-gnu")
|
|
SET(CMAKE_LIBRARY_PATH "/usr/lib/riscv64-linux-gnu")
|
|
SET(CMAKE_PROGRAM_PATH "/usr/bin/riscv64-linux-gnu")
|
|
ELSE()
|
|
MESSAGE(STATUS "RISCV_TOOLCHAIN_ROOT=${RISCV_TOOLCHAIN_ROOT} is defined during compilation.")
|
|
SET(CMAKE_C_COMPILER "${RISCV_TOOLCHAIN_ROOT}/bin/riscv64-unknown-linux-gnu-clang")
|
|
SET(CMAKE_ASM_COMPILER "${RISCV_TOOLCHAIN_ROOT}/bin/riscv64-unknown-linux-gnu-clang")
|
|
SET(CMAKE_CXX_COMPILER "${RISCV_TOOLCHAIN_ROOT}/bin/riscv64-unknown-linux-gnu-clang++")
|
|
SET(CMAKE_FIND_ROOT_PATH "${RISCV_TOOLCHAIN_ROOT}/sysroot/")
|
|
SET(CMAKE_INCLUDE_PATH "${RISCV_TOOLCHAIN_ROOT}/sysroot/usr/include/")
|
|
SET(CMAKE_LIBRARY_PATH "${RISCV_TOOLCHAIN_ROOT}/sysroot/usr/lib/")
|
|
SET(CMAKE_PROGRAM_PATH "${RISCV_TOOLCHAIN_ROOT}/sysroot/usr/bin/")
|
|
ENDIF()
|
|
|
|
SET(CMAKE_CROSSCOMPILING TRUE)
|
|
|
|
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(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
|
|
|
IF(NOT XNNPACK_ENABLE_RISCV_VECTOR)
|
|
SET(QEMU_OPTION -L ${CMAKE_FIND_ROOT_PATH})
|
|
ELSE()
|
|
SET(QEMU_OPTION -cpu rv64,zba=true,zbb=true,zbc=true,zbs=true,v=true,vlen=${VLEN},elen=64,vext_spec=v1.0 -L ${CMAKE_FIND_ROOT_PATH})
|
|
ENDIF()
|
|
|
|
IF(NOT RISCV_QEMU_ROOT)
|
|
SET(CMAKE_CROSSCOMPILING_EMULATOR "qemu-riscv64;${QEMU_OPTION}")
|
|
ELSE()
|
|
SET(CMAKE_CROSSCOMPILING_EMULATOR "${RISCV_QEMU_ROOT}/bin/qemu-riscv64;${QEMU_OPTION}")
|
|
ENDIF()
|
|
MESSAGE(STATUS "CMAKE_CROSSCOMPILING_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}")
|