27 lines
1.1 KiB
CMake
27 lines
1.1 KiB
CMake
# The C++ standard library for OS operations (userspace only), so most things that have to do with calling the kernel, or functions that the kernel has no use for.
|
|
|
|
file(GLOB HEADERS include/os/*.h)
|
|
|
|
set(SOURCES
|
|
${HEADERS}
|
|
src/ArgumentParser.cpp
|
|
)
|
|
|
|
add_library(os ${SOURCES})
|
|
target_compile_options(os PRIVATE -Os -Wall -Wextra -Werror -Wvla)
|
|
target_compile_options(os PRIVATE -Wdisabled-optimization -Wformat=2 -Winit-self)
|
|
target_compile_options(os PRIVATE -Wmissing-include-dirs -Wswitch-default -Wcast-qual -Wundef)
|
|
target_compile_options(os PRIVATE -Wcast-align -Wwrite-strings -Wlogical-op -Wredundant-decls -Wshadow -Wconversion)
|
|
target_compile_options(os PRIVATE -fno-asynchronous-unwind-tables -fno-omit-frame-pointer -std=c++20 -fno-rtti -fno-exceptions)
|
|
target_include_directories(os PUBLIC include/)
|
|
target_include_directories(os PUBLIC ${LUNA_BASE}/usr/include)
|
|
|
|
if("${LUNA_ARCH}" MATCHES "x86_64")
|
|
target_compile_definitions(os PUBLIC ARCH_X86_64)
|
|
endif()
|
|
|
|
if(LUNA_DEBUG_SYMBOLS)
|
|
message(STATUS "Building libOS with debug symbols")
|
|
target_compile_options(os PRIVATE -ggdb)
|
|
endif()
|