|  | # | 
|  | # Copyright 2017, Data61 | 
|  | # Commonwealth Scientific and Industrial Research Organisation (CSIRO) | 
|  | # ABN 41 687 119 230. | 
|  | # | 
|  | # This software may be distributed and modified according to the terms of | 
|  | # the BSD 2-Clause license. Note that NO WARRANTY is provided. | 
|  | # See "LICENSE_BSD2.txt" for details. | 
|  | # | 
|  | # @TAG(DATA61_BSD) | 
|  | # | 
|  |  | 
|  | cmake_minimum_required(VERSION 3.7.2) | 
|  |  | 
|  | project(libsel4platsupport C ASM) | 
|  |  | 
|  | set(configure_string "") | 
|  |  | 
|  | config_option( | 
|  | LibSel4PlatSupportUseDebugPutChar | 
|  | LIB_SEL4_PLAT_SUPPORT_USE_SEL4_DEBUG_PUTCHAR | 
|  | "Redirect putchar() to seL4_DebugPutchar()" | 
|  | DEFAULT | 
|  | ON | 
|  | DEPENDS | 
|  | "KernelPrinting" | 
|  | DEFAULT_DISABLED | 
|  | OFF | 
|  | ) | 
|  |  | 
|  | config_option( | 
|  | LibSel4PlatSupportStart | 
|  | LIB_SEL4_PLAT_SUPPORT_START | 
|  | "Supply _start entry point. Emit _start with a default definition that sets up a \ | 
|  | stack and does what's required to enter main()." | 
|  | DEFAULT | 
|  | OFF | 
|  | ) | 
|  |  | 
|  | config_option( | 
|  | LibSel4SupportSel4Start | 
|  | LIB_SEL4_PLAT_SUPPORT_SEL4_START | 
|  | "Supply _sel4_start entry point. Emit a _sel4_start that sets up a stack and does \ | 
|  | what's required to enter a regular _start routine" | 
|  | DEFAULT | 
|  | ON | 
|  | ) | 
|  | mark_as_advanced(LibSel4PlatSupportUseDebugPutChar LibSel4PlatSupportStart LibSel4SupportSel4Start) | 
|  | add_config_library(sel4platsupport "${configure_string}") | 
|  |  | 
|  | if(KernelArchRiscV) | 
|  | set(kernel_arch arm) | 
|  | else() | 
|  | set(kernel_arch ${KernelArch}) | 
|  | endif() | 
|  |  | 
|  | file( | 
|  | GLOB | 
|  | deps | 
|  | src/*.c | 
|  | src/cspace/*.c | 
|  | src/arch/${kernel_arch}/*.c | 
|  | src/plat/${KernelPlatform}/*.c | 
|  | src/mach/${KernelArmMach}/*.c | 
|  | src/sel4_arch/${KernelSel4Arch}/*.S | 
|  | src/arch/${kernel_arch}/*.S | 
|  | ) | 
|  |  | 
|  | list(SORT deps) | 
|  |  | 
|  | add_library(sel4platsupport STATIC EXCLUDE_FROM_ALL ${deps}) | 
|  | target_include_directories( | 
|  | sel4platsupport | 
|  | PUBLIC include "arch_include/${kernel_arch}" plat_include/${KernelPlatform} | 
|  | ) | 
|  | if(NOT "${KernelArmMach}" STREQUAL "") | 
|  | target_include_directories(sel4platsupport PUBLIC include "mach_include/${KernelArmMach}") | 
|  | endif() | 
|  | target_link_libraries( | 
|  | sel4platsupport | 
|  | PUBLIC | 
|  | muslc | 
|  | sel4 | 
|  | sel4runtime | 
|  | sel4simple | 
|  | utils | 
|  | sel4vspace | 
|  | platsupport | 
|  | sel4simple-default | 
|  | PRIVATE sel4platsupport_Config sel4muslcsys_Config sel4_autoconf | 
|  | ) |