project(boot-cdrom)

add_custom_target(cdrom-dir
        COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/cdrom
        COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/../limine/limine/limine.sys ${CMAKE_CURRENT_BINARY_DIR}/cdrom/limine.sys
        COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/../limine/limine/limine-cd.bin ${CMAKE_CURRENT_BINARY_DIR}/cdrom/limine-cd.bin
        COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/../limine/limine/limine-cd-efi.bin ${CMAKE_CURRENT_BINARY_DIR}/cdrom/limine-cd-efi.bin
        COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/limine.cfg ${CMAKE_CURRENT_BINARY_DIR}/cdrom/limine.cfg
        COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE:yak.elf> ${CMAKE_CURRENT_BINARY_DIR}/cdrom/yak.elf
        DEPENDS yak.elf)
add_custom_target(boot-cdrom.iso
        COMMAND xorriso -follow on -as mkisofs
        -b limine-cd.bin
        -no-emul-boot
        -boot-load-size 4
        -boot-info-table
        --efi-boot
        limine-cd-efi.bin
        -efi-boot-part
        --efi-boot-image
        --protective-msdos-label
        ${CMAKE_CURRENT_BINARY_DIR}/cdrom
        -o boot-cdrom.iso
        DEPENDS cdrom-dir yak.elf)
