diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2025-01-08 13:46:53 +0530 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-01-08 17:11:42 +0530 |
commit | b82649c2b156d5351e15fbbde00d09e5a8917b26 (patch) | |
tree | 8b683439d254444326c1ae40132d2d2ee05343d3 | |
parent | e66312535d608f851c13789b503c02ebbe7cfec5 (diff) |
build: cmake: Restructure
-rw-r--r-- | CMakeLists.txt | 55 | ||||
-rw-r--r-- | cmake/run.cmake | 53 |
2 files changed, 56 insertions, 52 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 50a78d9..85ccf6e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,23 +5,14 @@ set(CMAKE_CXX_COMPILER_WORKS TRUE) cmake_minimum_required(VERSION 3.21) project(bubbl) +set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/cmake") +include(run) + add_subdirectory(kernel) get_target_property(KERNEL_BINARY_DIR kernel BINARY_DIR) get_target_property(KERNEL_SOURCE kernel SOURCE_DIR) -set(BOCHS_CMD bochs) -set(QEMU_SYSTEM_CMD qemu-system-i386) - -set(QEMU_ARGUMENTS - -cdrom ${CMAKE_BINARY_DIR}/bubbl.iso - -device isa-debug-exit,iobase=0xf4,iosize=0x04 - -m 32M - -smp 1 -) - -set(IGNORE_EXIT || true) - add_custom_target(iso rm -rf ${CMAKE_BINARY_DIR}/iso && mkdir -p ${CMAKE_BINARY_DIR}/iso/boot/grub && @@ -32,46 +23,6 @@ add_custom_target(iso DEPENDS kernel ) -add_custom_target(run - ${QEMU_SYSTEM_CMD} - ${QEMU_ARGUMENTS} - -serial stdio - ${IGNORE_EXIT} - - DEPENDS iso - USES_TERMINAL -) - -add_custom_target(run-headless - ${QEMU_SYSTEM_CMD} - ${QEMU_ARGUMENTS} - -nographic - ${IGNORE_EXIT} - - DEPENDS iso - USES_TERMINAL -) - -add_custom_target(run-bochs - ${BOCHS_CMD} - -f ${CMAKE_SOURCE_DIR}/.bochsrc - - DEPENDS iso - USES_TERMINAL -) - -add_custom_target(run-gdb - ${QEMU_SYSTEM_CMD} - ${QEMU_ARGUMENTS} - -s - -S - - ${IGNORE_EXIT} - - DEPENDS iso - USES_TERMINAL -) - add_custom_target(clean-custom rm -rf ${CMAKE_BINARY_DIR}/iso diff --git a/cmake/run.cmake b/cmake/run.cmake new file mode 100644 index 0000000..7af3804 --- /dev/null +++ b/cmake/run.cmake @@ -0,0 +1,53 @@ +set(BOCHS_CMD bochs) +set(QEMU_SYSTEM_CMD qemu-system-i386) + +set(QEMU_ARGUMENTS + -cdrom ${CMAKE_BINARY_DIR}/bubbl.iso + -device isa-debug-exit,iobase=0xf4,iosize=0x04 + -m 32M + -smp 1 +) + +set(IGNORE_EXIT || true) + +add_custom_target(run + ${QEMU_SYSTEM_CMD} + ${QEMU_ARGUMENTS} + -serial stdio + + ${IGNORE_EXIT} + + DEPENDS iso + USES_TERMINAL +) + +add_custom_target(run-headless + ${QEMU_SYSTEM_CMD} + ${QEMU_ARGUMENTS} + -nographic + + ${IGNORE_EXIT} + + DEPENDS iso + USES_TERMINAL +) + +add_custom_target(run-bochs + ${BOCHS_CMD} + -f ${CMAKE_SOURCE_DIR}/.bochsrc + + DEPENDS iso + USES_TERMINAL +) + +add_custom_target(run-gdb + ${QEMU_SYSTEM_CMD} + ${QEMU_ARGUMENTS} + -s + -S + + ${IGNORE_EXIT} + + DEPENDS iso + USES_TERMINAL +) |