From 68db123a2f37a66aea218fa48a5bab8ea6b12951 Mon Sep 17 00:00:00 2001 From: "felix.morgner@ost.ch" Date: Sat, 7 Oct 2023 10:45:45 +0200 Subject: x86_64: implement first bootable kernel --- source/kernel/CMakeLists.txt | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 source/kernel/CMakeLists.txt (limited to 'source/kernel/CMakeLists.txt') diff --git a/source/kernel/CMakeLists.txt b/source/kernel/CMakeLists.txt new file mode 100644 index 0000000..c8e0c4a --- /dev/null +++ b/source/kernel/CMakeLists.txt @@ -0,0 +1,33 @@ +set(TEACHOS_KERNEL_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/arch/${CMAKE_SYSTEM_PROCESSOR}/kern.ld") +mark_as_advanced(TEACHOS_KERNEL_LINKER_SCRIPT) + +add_executable("kernel" + "src/entry.cpp" +) + +target_compile_features("kernel" PRIVATE + "cxx_std_20" +) + +target_compile_options("kernel" PRIVATE + "$<$:-Wall>" + "$<$:-Wextra>" + "$<$:-Werror>" + "$<$:-pedantic-errors>" +) + +target_link_options("kernel" PRIVATE + "-T${TEACHOS_KERNEL_LINKER_SCRIPT}" +) + +target_link_libraries("kernel" PRIVATE + "-Wl,--whole-archive" + "teachos::boot" + "-Wl,--no-whole-archive" +) + +set_target_properties("kernel" PROPERTIES + CXX_EXTENSIONS OFF + CXX_STANDARD_REQUIRED YES + LINK_DEPENDS "${TEACHOS_KERNEL_LINKER_SCRIPT}" +) -- cgit v1.2.3