# # 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(libsel4vka C) set(configure_string "") config_option(LibVKAAllowMemoryLeaks LIB_VKA_ALLOW_MEMORY_LEAKS "Leak memory on free \ Changes the default free functions to silently leak memory \ instead of assert failing. \ This is useful in scenarios where code is correctly freeing \ resources, but you want to use an allocator that does not \ implement free." DEFAULT OFF) config_string( LibVKADebugLiveSlotsSZ LIB_SEL4_VKA_DEBUG_LIVE_SLOTS_SZ "(debug allocator) live slot buffer size \ VKA contains an allocator, debugvka, that wraps a target VKA allocator \ for the purposes of debugging. It tracks slot and object allocations \ and catches both caller problems like double free, and allocator \ problems like handing out the same resource twice. This configuration \ option sets the maximum number of CSlots that can be tracked at any one \ time." DEFAULT 0 UNQUOTE ) config_string( LibVKADebugLiveObjsSZ LIB_SEL4_VKA_DEBUG_LIVE_OBJS_SZ "(debug allocator) live object buffer size \ As for the above option, but sets the maximum number of objects that \ can be tracked at any one time." DEFAULT 0 UNQUOTE ) mark_as_advanced(LibVKAAllowMemoryLeaks LibVKADebugLiveSlotsSZ LibVKADebugLiveObjsSZ) add_config_library(sel4vka "${configure_string}") file(GLOB deps src/*.c) list(SORT deps) add_library(sel4vka STATIC EXCLUDE_FROM_ALL ${deps}) target_include_directories( sel4vka PUBLIC include "sel4_arch_include/${KernelSel4Arch}" "arch_include/${KernelArch}" ) target_link_libraries( sel4vka PUBLIC muslc sel4 utils sel4vka_Config sel4_autoconf ) if(KernelDebugBuild) target_link_libraries(sel4vka PUBLIC sel4debug) endif()