From 8f9b9cd8aac30572b7e275bbeb1b32d2cbb8950a Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 16 Sep 2024 14:07:41 +0000 Subject: build: migrate away from conan --- arch/x86_64/CMakeLists.txt | 64 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 arch/x86_64/CMakeLists.txt (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt new file mode 100644 index 0000000..6ff1332 --- /dev/null +++ b/arch/x86_64/CMakeLists.txt @@ -0,0 +1,64 @@ +#[============================================================================[ +# The Kernel Library +#]============================================================================] + +set(TEACHOS_KERNEL_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld") +mark_as_advanced(TEACHOS_KERNEL_LINKER_SCRIPT) + +target_sources("_kernel" PRIVATE + "src/kernel/main.cpp" +) + +target_link_options("_kernel" PRIVATE + "-T${TEACHOS_KERNEL_LINKER_SCRIPT}" +) + +set_target_properties("_kernel" PROPERTIES + LINK_DEPENDS "${TEACHOS_KERNEL_LINKER_SCRIPT}" +) + +#[============================================================================[ +# The Bootstrap Library +#]============================================================================] + +target_sources("_boot" PRIVATE + "src/boot/boot.s" + "src/boot/crti.s" + "src/boot/crtn.s" + "src/boot/multiboot.s" +) + +#[============================================================================[ +# The Video Library +#]============================================================================] + +target_sources("_video" PRIVATE + "src/video/vga/text.cpp" +) + +#[============================================================================[ +# The Bootable ISO Image +#]============================================================================] + +find_package("grub-mkrescue") + +if(grub-mkrescue_FOUND) + file(GENERATE + OUTPUT "isofs/boot/grub/grub.cfg" + INPUT "support/grub.cfg.in" + ) + + add_custom_target("bootable-iso" + COMMAND "${GRUB_MKRESCUE_EXE}" + "-o" + "${PROJECT_BINARY_DIR}/teachos-$.iso" + "${CMAKE_CURRENT_BINARY_DIR}/isofs" + "$" + "2>/dev/null" + DEPENDS + "$" + "isofs/boot/grub/grub.cfg" + BYPRODUCTS "${PROJECT_BINARY_DIR}/teachos-$.iso" + COMMENT "Creating bootable ISO image" + ) +endif() -- cgit v1.2.3