cmake: only enable KVM if building on Linux

This commit is contained in:
2026-02-22 16:25:10 +00:00
parent fe3b014e09
commit 5721daa049

View File

@@ -8,6 +8,14 @@ find_program(LLDB lldb)
find_program(GDB gdb) find_program(GDB gdb)
set(patched_kernel ${CMAKE_CURRENT_BINARY_DIR}/kernel/${kernel_name}.elf32) set(patched_kernel ${CMAKE_CURRENT_BINARY_DIR}/kernel/${kernel_name}.elf32)
set(generic_flags -m 1G)
if (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux")
message(STATUS "QEMU: Enabling KVM acceleration")
set(generic_flags ${generic_flags} -enable-kvm)
else ()
message(STATUS "QEMU: Host system is not Linux. KVM acceleration unavailable")
endif ()
add_custom_command(OUTPUT ${patched_kernel} add_custom_command(OUTPUT ${patched_kernel}
DEPENDS ${kernel_name} DEPENDS ${kernel_name}
@@ -25,7 +33,8 @@ add_custom_target(run-kernel
${QEMU} ${QEMU}
-kernel ${patched_kernel} -kernel ${patched_kernel}
-initrd ${sys_dir}/${bsp_name} -initrd ${sys_dir}/${bsp_name}
-m 1G -serial stdio -enable-kvm ${generic_flags}
-serial stdio
--append kernel.early-console=ttyS0 --append kernel.early-console=ttyS0
USES_TERMINAL USES_TERMINAL
DEPENDS ${patched_kernel} bsp) DEPENDS ${patched_kernel} bsp)
@@ -35,7 +44,8 @@ add_custom_target(run-kernel-monitor
${QEMU} ${QEMU}
-kernel $<TARGET_FILE:${kernel_name}> -kernel $<TARGET_FILE:${kernel_name}>
-initrd ${sys_dir}/${bsp_name} -initrd ${sys_dir}/${bsp_name}
-m 1G -monitor stdio ${generic_flags}
-monitor stdio
USES_TERMINAL USES_TERMINAL
DEPENDS ${kernel_name} bsp) DEPENDS ${kernel_name} bsp)
@@ -45,7 +55,7 @@ if (image_cdrom)
COMMAND COMMAND
${QEMU} ${QEMU}
-cdrom ${image_cdrom} -cdrom ${image_cdrom}
-m 1G ${generic_flags}
-serial stdio -serial stdio
USES_TERMINAL USES_TERMINAL
DEPENDS ${image_cdrom}) DEPENDS ${image_cdrom})
@@ -58,8 +68,8 @@ if (LLDB)
${QEMU} ${QEMU}
-kernel $<TARGET_FILE:${kernel_name}> -kernel $<TARGET_FILE:${kernel_name}>
-initrd ${sys_dir}/${bsp_name} -initrd ${sys_dir}/${bsp_name}
-enable-kvm ${generic_flags}
-m 1G -s -S & -s -S &
${LLDB} ${LLDB}
-o "file ${CMAKE_BINARY_DIR}/kernel/${kernel_name}.debug" -o "file ${CMAKE_BINARY_DIR}/kernel/${kernel_name}.debug"
-o "gdb-remote localhost:1234" -o "gdb-remote localhost:1234"
@@ -72,7 +82,8 @@ if (LLDB)
COMMAND COMMAND
${QEMU} ${QEMU}
-cdrom ${image_cdrom} -cdrom ${image_cdrom}
-m 1G -s -S & ${generic_flags}
-s -S &
${LLDB} ${LLDB}
-o "file ${CMAKE_BINARY_DIR}/kernel/${kernel_name}.debug" -o "file ${CMAKE_BINARY_DIR}/kernel/${kernel_name}.debug"
-o "target remote localhost:1234" -o "target remote localhost:1234"
@@ -86,7 +97,8 @@ elseif (GDB)
${QEMU} ${QEMU}
-kernel $<TARGET_FILE:${kernel_name}> -kernel $<TARGET_FILE:${kernel_name}>
-initrd ${sys_dir}/${bsp_name} -initrd ${sys_dir}/${bsp_name}
-m 1G -s -S & ${generic_flags}
-s -S &
${GDB} ${GDB}
-o "file ${CMAKE_BINARY_DIR}/kernel/${kernel_name}.debug" -o "file ${CMAKE_BINARY_DIR}/kernel/${kernel_name}.debug"
-o "remote localhost:1234" -o "remote localhost:1234"
@@ -99,7 +111,8 @@ elseif (GDB)
COMMAND COMMAND
${QEMU} ${QEMU}
-cdrom ${image_cdrom} -cdrom ${image_cdrom}
-m 1G -s -S & ${generic_flags}
-s -S &
${GDB} -tui ${GDB} -tui
-s "${CMAKE_BINARY_DIR}/kernel/${kernel_name}.debug" -s "${CMAKE_BINARY_DIR}/kernel/${kernel_name}.debug"
-ex "target remote localhost:1234" -ex "target remote localhost:1234"