aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt21
-rw-r--r--kernel/CMakeLists.txt49
2 files changed, 40 insertions, 30 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6cc8a2f..002ab0c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -89,15 +89,10 @@ if(Doxygen_FOUND AND TEACHOS_GENERATE_DOCS)
endif()
#[============================================================================[
-# Global Targets
+# Build Host Testing
#]============================================================================]
-if(CMAKE_CROSSCOMPILING)
- add_subdirectory("arch/${CMAKE_SYSTEM_PROCESSOR}")
- add_subdirectory("kernel")
- add_subdirectory("kapi")
- add_subdirectory("libs")
-else()
+if(NOT CMAKE_CROSSCOMPILING)
include("EnableCoverage")
enable_testing()
@@ -110,6 +105,16 @@ else()
CXX_CLANG_TIDY ""
)
endif()
+endif()
- add_subdirectory("libs")
+#[============================================================================[
+# Global Targets
+#]============================================================================]
+
+if(CMAKE_CROSSCOMPILING)
+ add_subdirectory("arch/${CMAKE_SYSTEM_PROCESSOR}")
endif()
+
+add_subdirectory("kapi")
+add_subdirectory("kernel")
+add_subdirectory("libs")
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt
index 206923e..4aa72e1 100644
--- a/kernel/CMakeLists.txt
+++ b/kernel/CMakeLists.txt
@@ -12,7 +12,6 @@ add_library("kernel-objs" OBJECT
"kstd/print.cpp"
# Kernel Implementation
- "src/main.cpp"
"src/memory/bitmap_allocator.cpp"
"src/memory/block_list_allocator.cpp"
"src/memory/operators.cpp"
@@ -44,7 +43,7 @@ target_include_directories("kernel-objs" PUBLIC
"include"
)
-target_link_libraries("kernel-objs" PRIVATE
+target_link_libraries("kernel-objs" PUBLIC
"os::kapi"
)
@@ -57,28 +56,34 @@ target_sources("kernel-objs" PUBLIC
${KERNEL_HEADERS}
)
-add_executable("kernel"
- $<TARGET_OBJECTS:kernel-objs>
-)
+add_library("os::kernel" ALIAS "kernel-objs")
-target_link_libraries("kernel" PRIVATE
- "os::arch"
-)
+if(CMAKE_CROSSCOMPILING)
+ add_executable("kernel"
+ "src/main.cpp"
+ )
-target_link_options("kernel" PRIVATE
- "-T${KERNEL_LINKER_SCRIPT}"
- "-no-pie"
- "-nostdlib"
-)
+ target_link_libraries("kernel" PRIVATE
+ "os::arch"
+ "os::kernel"
+ )
-set_property(TARGET "kernel"
- APPEND
- PROPERTY LINK_DEPENDS
- "${KERNEL_LINKER_SCRIPT}"
-)
+ target_link_options("kernel" PRIVATE
+ "-T${KERNEL_LINKER_SCRIPT}"
+ "-no-pie"
+ "-nostdlib"
+ )
+
+ set_property(TARGET "kernel"
+ APPEND
+ PROPERTY LINK_DEPENDS
+ "${KERNEL_LINKER_SCRIPT}"
+ )
+
+ target_disassemble("kernel")
+ target_extract_debug_symbols("kernel")
+ target_strip("kernel")
-target_disassemble("kernel")
-target_extract_debug_symbols("kernel")
-target_strip("kernel")
+ target_generate_bootable_iso("kernel")
+endif()
-target_generate_bootable_iso("kernel")