From 05ac8c2bdd000d27b38411db2223eabb649c318f Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 14 Jul 2025 21:29:10 +0000 Subject: build: reintroduce bootable ISO --- cmake/Modules/GenerateBootableIso.cmake | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 cmake/Modules/GenerateBootableIso.cmake (limited to 'cmake/Modules') diff --git a/cmake/Modules/GenerateBootableIso.cmake b/cmake/Modules/GenerateBootableIso.cmake new file mode 100644 index 0000000..368dcf6 --- /dev/null +++ b/cmake/Modules/GenerateBootableIso.cmake @@ -0,0 +1,22 @@ +include_guard(GLOBAL) + +function(target_generate_bootable_iso TARGET) + find_package("grub-mkrescue") + + file(GENERATE + OUTPUT "$/isofs/boot/grub/grub.cfg" + INPUT "arch/${CMAKE_SYSTEM_PROCESSOR}/support/grub.cfg.in" + ) + + add_custom_command(TARGET "${TARGET}" + POST_BUILD + COMMAND "${GRUB_MKRESCUE_EXE}" + "-o" + "$/${TARGET}.iso" + "$/isofs" + "$" + "2>/dev/null" + BYPRODUCTS "${PROJECT_BINARY_DIR}/$/${TARGET}.iso" + COMMENT "Creating bootable ISO image" + ) +endfunction() -- cgit v1.2.3 From 9b12522f37c3f8704e8f8ca8736689dbbf30ce8b Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 14 Jul 2025 21:35:43 +0000 Subject: cmake: introduce ELF utility module --- cmake/Modules/ElfTransformations.cmake | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 cmake/Modules/ElfTransformations.cmake (limited to 'cmake/Modules') diff --git a/cmake/Modules/ElfTransformations.cmake b/cmake/Modules/ElfTransformations.cmake new file mode 100644 index 0000000..dfc8576 --- /dev/null +++ b/cmake/Modules/ElfTransformations.cmake @@ -0,0 +1,36 @@ +include_guard(GLOBAL) + +function(target_extract_debug_symbols TARGET) + add_custom_command(TARGET "${TARGET}" + POST_BUILD + COMMAND "${CMAKE_OBJCOPY}" + "--only-keep-debug" + "$" + "$/$.sym" + BYPRODUCTS "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/${TARGET}.sym" + COMMENT "Extracting debug symbols from $ ..." + ) +endfunction() + +function(target_strip TARGET) + add_custom_command(TARGET "${TARGET}" + POST_BUILD + COMMAND "${CMAKE_STRIP}" + "$" + COMMENT "Stripping $ ..." + ) +endfunction() + +function(target_disassemble TARGET) + add_custom_command(TARGET "${TARGET}" + POST_BUILD + COMMAND "${CMAKE_OBJDUMP}" + "--disassemble" + "--visualize-jumps" + "--demangle" + "$" + ">$/$.dis" + BYPRODUCTS "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/${TARGET}.dis" + COMMENT "Dumping disassembly for $ ..." + ) +endfunction() -- cgit v1.2.3 From f82e0c289d6ab3e901dd80a3cf72aeeb0f85a8c5 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 23 Jul 2025 09:15:00 +0000 Subject: build: fix iso generation dependencies --- cmake/Modules/GenerateBootableIso.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cmake/Modules') diff --git a/cmake/Modules/GenerateBootableIso.cmake b/cmake/Modules/GenerateBootableIso.cmake index 368dcf6..4698d6f 100644 --- a/cmake/Modules/GenerateBootableIso.cmake +++ b/cmake/Modules/GenerateBootableIso.cmake @@ -16,7 +16,7 @@ function(target_generate_bootable_iso TARGET) "$/isofs" "$" "2>/dev/null" - BYPRODUCTS "${PROJECT_BINARY_DIR}/$/${TARGET}.iso" + BYPRODUCTS "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/${TARGET}.iso" COMMENT "Creating bootable ISO image" ) endfunction() -- cgit v1.2.3 From d2ae06ac6c19c1d6258f2ba0888e03795712826d Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 15 Dec 2025 16:37:39 +0100 Subject: build: move kernel build configuration --- cmake/Modules/GenerateBootableIso.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cmake/Modules') diff --git a/cmake/Modules/GenerateBootableIso.cmake b/cmake/Modules/GenerateBootableIso.cmake index 4698d6f..3d1ee30 100644 --- a/cmake/Modules/GenerateBootableIso.cmake +++ b/cmake/Modules/GenerateBootableIso.cmake @@ -5,7 +5,7 @@ function(target_generate_bootable_iso TARGET) file(GENERATE OUTPUT "$/isofs/boot/grub/grub.cfg" - INPUT "arch/${CMAKE_SYSTEM_PROCESSOR}/support/grub.cfg.in" + INPUT "${PROJECT_SOURCE_DIR}/arch/${CMAKE_SYSTEM_PROCESSOR}/support/grub.cfg.in" ) add_custom_command(TARGET "${TARGET}" -- cgit v1.2.3