aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-01-08 13:46:53 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-01-08 17:11:42 +0530
commitb82649c2b156d5351e15fbbde00d09e5a8917b26 (patch)
tree8b683439d254444326c1ae40132d2d2ee05343d3
parente66312535d608f851c13789b503c02ebbe7cfec5 (diff)
build: cmake: Restructure
-rw-r--r--CMakeLists.txt55
-rw-r--r--cmake/run.cmake53
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
+)