# # Copyright 2020, Data61, CSIRO (ABN 41 687 119 230) # # SPDX-License-Identifier: GPL-2.0-only # cmake_minimum_required(VERSION 3.7.2) set(CMAKE_SYSTEM_NAME Generic) # For a generic system this is unused, so define it to something that will be # obvious if someone accidentally uses it set(CMAKE_SYSTEM_PROCESSOR seL4CPU) set(LLVM_TOOLCHAIN ON) set(CROSS_COMPILER_PREFIX ${TRIPLE}-) set(CMAKE_ASM_COMPILER "clang") set(CMAKE_ASM_COMPILER_ID Clang) set(CMAKE_ASM_COMPILER_TARGET ${TRIPLE}) string(APPEND asm_common_flags " -Wno-unused-command-line-argument") string(APPEND asm_common_flags " -fno-integrated-as") set(CMAKE_C_COMPILER "clang") set(CMAKE_C_COMPILER_ID Clang) set(CMAKE_C_COMPILER_TARGET ${TRIPLE}) set(CMAKE_CXX_COMPILER "clang++") set(CMAKE_CXX_COMPILER_ID Clang) set(CMAKE_CXX_COMPILER_TARGET ${TRIPLE}) string(APPEND c_common_flags " -Wno-sizeof-pointer-div") string(APPEND c_common_flags " -Qunused-arguments") string(APPEND c_common_flags " -Wno-constant-logical-operand") if(NOT ("${TRIPLE}" MATCHES "^riscv")) string(APPEND c_common_flags " -fno-integrated-as") endif() # clang 11 has a regression in GlobalISel (only used at -O0) affecting the syscall # stubs in libsel4runtime; see https://reviews.llvm.org/D83384#2189132 string(APPEND c_common_flags " -fno-experimental-isel") 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) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) mark_as_advanced(FORCE CMAKE_TOOLCHAIN_FILE) find_program(CCACHE ccache) if(NOT ("${CCACHE}" STREQUAL CCACHE-NOTFOUND)) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE}) set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE}) endif() mark_as_advanced(CCACHE)