os3/rawimg/CMakeLists.txt
John Stefanelli d57078cc2d
[MBR] Add GDT setup
[Host/Kernelcopy] Add support for direct writing into MBR's DAP
[Rawimg] Add kernelcopy support
2023-01-13 20:57:40 +01:00

22 lines
No EOL
1.6 KiB
CMake

set(IMAGE_TARGET ${CMAKE_CURRENT_BINARY_DIR}/raw.img)
if (CMAKE_HOST_APPLE)
set(IMAGE_GEN_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/mkimg_macos.sh)
elseif (CMAKE_HOST_UNIX)
set(IMAGE_GEN_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/mkimg_linux.sh)
endif (CMAKE_HOST_APPLE)
cmake_path(SET MBR_BIN_PATH NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/../mbr/mbr.bin")
cmake_path(SET ST1_BIN_PATH NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/../stage1/stage1.bin")
add_custom_command(OUTPUT ${MBR_BIN_PATH} COMMAND ${OS3_OBJCOPY_EXE} -O binary -g -S -R .eh_frame $<TARGET_FILE:mbr> ${MBR_BIN_PATH} COMMAND ${OS3_OBJCOPY_EXE} --only-keep-debug $<TARGET_FILE:mbr> ${MBR_BIN_PATH}.sym DEPENDS mbr BYPRODUCTS ${MBR_BIN_PATH}.sym)
cmake_path(SET MBR_IMAGE_TARGET "${CMAKE_CURRENT_BINARY_DIR}/mbr.img")
cmake_path(SET KERNEL_IMAGE_TARGET "${CMAKE_CURRENT_BINARY_DIR}/kernel.img")
add_custom_command(OUTPUT ${IMAGE_TARGET} COMMAND sh ${IMAGE_GEN_SCRIPT} ${IMAGE_TARGET})
add_custom_command(OUTPUT ${MBR_IMAGE_TARGET} COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/mkmbrimg.sh ${IMAGE_TARGET} ${MBR_BIN_PATH} ${MBR_IMAGE_TARGET} DEPENDS ${IMAGE_TARGET} ${MBR_BIN_PATH})
add_custom_command(OUTPUT ${ST1_BIN_PATH} COMMAND ${OS3_OBJCOPY_EXE} -O binary -g -S -R .eh_frame $<TARGET_FILE:stage1> ${ST1_BIN_PATH} COMMAND ${OS3_OBJCOPY_EXE} --only-keep-debug $<TARGET_FILE:stage1> ${ST1_BIN_PATH}.sym DEPENDS stage1 BYPRODUCTS ${ST1_BIN_PATH}.sym)
add_custom_command(OUTPUT ${KERNEL_IMAGE_TARGET} COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/mkkernelimg.sh ${MBR_IMAGE_TARGET} ${ST1_BIN_PATH} ${KERNEL_IMAGE_TARGET} DEPENDS ${MBR_IMAGE_TARGET} ${ST1_BIN_PATH})
add_custom_target(image DEPENDS ${KERNEL_IMAGE_TARGET})