diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-04-01 08:01:28 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-04-01 08:01:28 +0200 |
| commit | cd70186845c90aaaefbdb21b6d0f3c7caaa90a27 (patch) | |
| tree | f9a38764d3829396779754f5a68fa3c0cbdde051 /kernel/CMakeLists.txt | |
| parent | 022d3e872de9c5a6a52c67f74af13706552330c0 (diff) | |
| download | teachos-cd70186845c90aaaefbdb21b6d0f3c7caaa90a27.tar.xz teachos-cd70186845c90aaaefbdb21b6d0f3c7caaa90a27.zip | |
kernel: split off objects into a library
Diffstat (limited to 'kernel/CMakeLists.txt')
| -rw-r--r-- | kernel/CMakeLists.txt | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt index cb3d8a5..206923e 100644 --- a/kernel/CMakeLists.txt +++ b/kernel/CMakeLists.txt @@ -1,4 +1,4 @@ -add_executable("kernel" +add_library("kernel-objs" OBJECT # Platform-independent KAPI implementation "kapi/boot_modules.cpp" "kapi/cio.cpp" @@ -40,13 +40,29 @@ add_executable("kernel" "src/filesystem/vfs.cpp" ) -target_include_directories("kernel" PRIVATE +target_include_directories("kernel-objs" PUBLIC "include" ) +target_link_libraries("kernel-objs" PRIVATE + "os::kapi" +) + +file(GLOB_RECURSE KERNEL_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "include/**.hpp") + +target_sources("kernel-objs" PUBLIC + FILE_SET HEADERS + BASE_DIRS "include" + FILES + ${KERNEL_HEADERS} +) + +add_executable("kernel" + $<TARGET_OBJECTS:kernel-objs> +) + target_link_libraries("kernel" PRIVATE "os::arch" - "os::kapi" ) target_link_options("kernel" PRIVATE @@ -61,15 +77,6 @@ set_property(TARGET "kernel" "${KERNEL_LINKER_SCRIPT}" ) -file(GLOB_RECURSE KERNEL_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "include/**.hpp") - -target_sources("kernel" PUBLIC - FILE_SET HEADERS - BASE_DIRS "include" - FILES - ${KERNEL_HEADERS} -) - target_disassemble("kernel") target_extract_debug_symbols("kernel") target_strip("kernel") |
