[General] Rework CMAKE custom targets as custom commands instead, bundled in a single "image" custom target
This commit is contained in:
parent
642385797c
commit
f7d06b8ff3
4 changed files with 17 additions and 5 deletions
|
|
@ -1,6 +1,4 @@
|
|||
add_executable(mbr mbr.asm linker.ld)
|
||||
add_executable(mbr mbr.asm)
|
||||
set_target_properties(mbr PROPERTIES LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/linker.ld)
|
||||
|
||||
target_link_options(mbr PRIVATE -T${CMAKE_CURRENT_SOURCE_DIR}/linker.ld)
|
||||
|
||||
|
||||
add_custom_target(mbr_bin ${OS3_OBJCOPY_EXE} -O binary -g -S -R .eh_frame $<TARGET_FILE:mbr> $<TARGET_FILE:mbr>.bin COMMAND ${OS3_OBJCOPY_EXE} --only-keep-debug $<TARGET_FILE:mbr> $<TARGET_FILE:mbr>.sym DEPENDS mbr)
|
||||
|
|
@ -4,6 +4,8 @@ SECTIONS
|
|||
. = 0x7C00;
|
||||
.text : AT(0x7c00){
|
||||
*.o(.text);
|
||||
}
|
||||
.data : {
|
||||
*.o(.data);
|
||||
}
|
||||
.sig : AT(0x7DFE){
|
||||
|
|
|
|||
|
|
@ -6,4 +6,11 @@ elseif (CMAKE_HOST_UNIX)
|
|||
set(IMAGE_GEN_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/mkimg_linux.sh)
|
||||
endif (CMAKE_HOST_APPLE)
|
||||
|
||||
add_custom_target(raw_img COMMAND sh ${IMAGE_GEN_SCRIPT} ${IMAGE_TARGET} BYPRODUCTS ${IMAGE_TARGET})
|
||||
cmake_path(SET MBR_BIN_PATH NORMALIZE "${CMAKE_CURRENT_BINARY_DIR}/../mbr/mbr.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 COMMAND echo "Building .bin file" DEPENDS mbr BYPRODUCTS ${MBR_BIN_PATH}.sym)
|
||||
|
||||
cmake_path(SET MBR_IMAGE_TARGET "${CMAKE_CURRENT_BINARY_DIR}/mbr.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_target(image DEPENDS ${MBR_IMAGE_TARGET})
|
||||
5
rawimg/mkmbrimg.sh
Normal file
5
rawimg/mkmbrimg.sh
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
cp "$1" "$3"
|
||||
"${BASEDIR}/../build/host/mbrcopy/mbrcopy" "$3" "$2"
|
||||
Loading…
Add table
Reference in a new issue