blob: 8f1e0b7fe05cfd6efd213ca3512ac54f9ca1fe0f [file] [log] [blame]
#
# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
#
# SPDX-License-Identifier: BSD-2-Clause
#
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
)