aboutsummaryrefslogtreecommitdiff
path: root/kernel/CMakeLists.txt
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-04-01 08:01:28 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-04-01 08:01:28 +0200
commitcd70186845c90aaaefbdb21b6d0f3c7caaa90a27 (patch)
treef9a38764d3829396779754f5a68fa3c0cbdde051 /kernel/CMakeLists.txt
parent022d3e872de9c5a6a52c67f74af13706552330c0 (diff)
downloadteachos-cd70186845c90aaaefbdb21b6d0f3c7caaa90a27.tar.xz
teachos-cd70186845c90aaaefbdb21b6d0f3c7caaa90a27.zip
kernel: split off objects into a library
Diffstat (limited to 'kernel/CMakeLists.txt')
-rw-r--r--kernel/CMakeLists.txt31
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")