1#
2# Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
3#
4# SPDX-License-Identifier: BSD-2-Clause
5#
6
7cmake_minimum_required(VERSION 3.8.2)
8
9project(libsel4vmmplatsupport C)
10
11add_compile_options(-std=gnu99)
12
13config_option(
14    LibSel4VMMPlatsupportVESAFrameBuffer
15    VMM_PLATSUPPORT_VESA_FRAMEBUFFER
16    "Expose VESA Frame Buffer
17        Support for mapping the VESA frame buffer frames into the guest OS.
18        This option is useful for working around non-working video drivers otherwise,
19        due to missing features or such."
20    DEFAULT
21    ON
22    DEPENDS
23    "KernelPlatPC99"
24)
25
26mark_as_advanced(LibSel4VMMPlatsupportVESAFrameBuffer)
27
28add_config_library(sel4vmmplatsupport "${configure_string}")
29
30file(
31    GLOB
32        sources
33        src/*.c
34        src/drivers/*.c
35        src/arch/${KernelArch}/*.c
36        src/arch/${KernelArch}/devices/*.c
37        src/arch/${KernelArch}/drivers/*.c
38        src/sel4_arch/${KernelSel4Arch}/*.c
39        src/plat/${KernelPlatform}/*.c
40        src/plat/${KernelPlatform}/devices/*.c
41)
42
43add_library(sel4vmmplatsupport STATIC EXCLUDE_FROM_ALL ${sources})
44target_include_directories(
45    sel4vmmplatsupport
46    PUBLIC include arch_include/${KernelArch} plat_include/${KernelPlatform}
47)
48target_include_directories(sel4vmmplatsupport PRIVATE src/sel4_arch/${KernelSel4Arch})
49target_include_directories(sel4vmmplatsupport PRIVATE src/arch/${KernelArch})
50
51target_link_libraries(
52    sel4vmmplatsupport
53    muslc
54    sel4
55    utils
56    sel4utils
57    platsupport
58    pci
59    ethdrivers
60    sel4vm
61    fdt
62    fdtgen
63    sel4_autoconf
64    sel4vm_Config
65    usbdrivers_Config
66)
67