1# 2# Copyright 2017, Data61 3# Commonwealth Scientific and Industrial Research Organisation (CSIRO) 4# ABN 41 687 119 230. 5# 6# This software may be distributed and modified according to the terms of 7# the GNU General Public License version 2. Note that NO WARRANTY is provided. 8# See "LICENSE_GPLv2.txt" for details. 9# 10# @TAG(DATA61_GPL) 11# 12 13cmake_minimum_required(VERSION 3.7.2) 14 15set(CMAKE_SYSTEM_NAME Generic) 16# For a generic system this is unused, so define it to something that will be 17# obvious if someone accidentally uses it 18set(CMAKE_SYSTEM_PROCESSOR seL4CPU) 19 20set(CMAKE_SYSROOT "${CMAKE_BINARY_DIR}") 21set(CMAKE_STAGING_PREFIX "${CMAKE_BINARY_DIR}/staging") 22 23if("${CROSS_COMPILER_PREFIX}" STREQUAL "") 24 if(AARCH32 OR ARM) 25 set(CROSS_COMPILER_PREFIX "arm-linux-gnueabi-" CACHE INTERNAL "") 26 if(ARM) 27 message("ARM flag is deprecated, please use AARCH32") 28 endif() 29 elseif(AARCH32HF) 30 set(CROSS_COMPILER_PREFIX "arm-linux-gnueabihf-" CACHE INTERNAL "") 31 elseif(AARCH64) 32 set(CROSS_COMPILER_PREFIX "aarch64-linux-gnu-" CACHE INTERNAL "") 33 elseif(RISCV32) 34 set(CROSS_COMPILER_PREFIX "riscv32-unknown-elf-" CACHE INTERNAL "") 35 elseif(RISCV64) 36 set(CROSS_COMPILER_PREFIX "riscv64-unknown-elf-" CACHE INTERNAL "") 37 else() 38 # If we haven't set a target above we assume x86_64/ia32 target 39 if(APPLE) 40 # APPLE is a CMake variable that evaluates to True on a Mac OSX system 41 set(CROSS_COMPILER_PREFIX "x86_64-unknown-linux-gnu-" CACHE INTERNAL "") 42 endif() 43 endif() 44endif() 45 46set(CMAKE_C_COMPILER ${CROSS_COMPILER_PREFIX}gcc) 47set(CMAKE_ASM_COMPILER ${CROSS_COMPILER_PREFIX}gcc) 48set(CMAKE_CXX_COMPILER ${CROSS_COMPILER_PREFIX}g++) 49 50set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 51set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 52set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 53set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) 54 55set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) 56 57mark_as_advanced(FORCE CMAKE_TOOLCHAIN_FILE) 58