blob: 4b2b938653959619438be36267fdd7d191e14cc4 [file] [edit]
#
# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
#
# SPDX-License-Identifier: BSD-2-Clause
#
cmake_minimum_required(VERSION 3.7.2)
project(sel4test-driver C)
set(configure_string "")
config_option(Sel4testHaveTimer HAVE_TIMER "Enable tests that require a timer driver" DEFAULT ON)
config_option(Sel4testSimulation SIMULATION "Disable tests not suitable for simulation" DEFAULT OFF)
config_option(
Sel4testHaveCache
HAVE_CACHE
"Enable tests that require a functioning cache"
DEFAULT
ON
)
if(Sel4testAllowSettingsOverride)
mark_as_advanced(CLEAR Sel4testHaveTimer Sel4testHaveCache)
else()
mark_as_advanced(FORCE Sel4testHaveTimer Sel4testHaveCache)
endif()
add_config_library(sel4test-driver "${configure_string}")
find_package(musllibc REQUIRED)
find_package(util_libs REQUIRED)
find_package(seL4_libs REQUIRED)
find_package(sel4_projects_libs REQUIRED)
# Need to disable GC sections as it causes our tests to be stripped sometimes
# This option is tested in the following musllibc_setup_build_environment_with_sel4runtime call.
set(UserLinkerGCSections OFF CACHE BOOL "" FORCE)
# This sets up environment build flags and imports musllibc and runtime libraries.
musllibc_setup_build_environment_with_sel4runtime()
sel4_import_libsel4()
util_libs_import_libraries()
sel4_libs_import_libraries()
# Setting LibNanopb On causes its libraries to be created when sel4_projects_libs_import_libraries
# is called.
set(LibNanopb ON CACHE BOOL "" FORCE)
sel4_projects_libs_import_libraries()
add_subdirectory(../../libsel4testsupport libsel4testsupport)
file(
GLOB
static
src/*.c
src/tests/*.c
src/arch/${KernelArch}/*.c
src/plat/${KernelPlatform}/*.c
src/arch/${KernelArch}/*.S
src/plat/${KernelPlatform}/*.S
)
# Import build rules for test app
add_subdirectory(../sel4test-tests sel4test-tests)
include(cpio)
MakeCPIO(archive.o "$<TARGET_FILE:sel4test-tests>")
add_executable(sel4test-driver EXCLUDE_FROM_ALL ${static} archive.o)
target_include_directories(sel4test-driver PRIVATE "include")
target_link_libraries(
sel4test-driver
PUBLIC
sel4_autoconf
muslc
sel4
sel4runtime
sel4allocman
sel4vka
sel4utils
sel4rpc
sel4test
sel4platsupport
sel4muslcsys
sel4testsupport
PRIVATE sel4test-driver_Config
)
target_compile_options(sel4test-driver PRIVATE -Werror -g)
# Set this image as the rootserver
include(rootserver)
DeclareRootserver(sel4test-driver)