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