include_guard(GLOBAL) function(target_generate_bootable_iso TARGET) find_package("grub-mkrescue") # set(MODULE_SRC # "${PROJECT_SOURCE_DIR}/arch/${CMAKE_SYSTEM_PROCESSOR}/support/test.img" # ) # set(MODULE_DST # "$/isofs/test.img" # ) file(GENERATE OUTPUT "$/isofs/boot/grub/grub.cfg" INPUT "${PROJECT_SOURCE_DIR}/arch/${CMAKE_SYSTEM_PROCESSOR}/support/grub.cfg.in" ) add_custom_command(TARGET "${TARGET}" POST_BUILD # COMMAND "${CMAKE_COMMAND}" -E make_directory "$/isofs" # COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${MODULE_SRC}" "${MODULE_DST}" COMMAND "${CMAKE_COMMAND}" -E make_directory "$/isofs" COMMAND "${CMAKE_COMMAND}" -E copy_directory "${PROJECT_SOURCE_DIR}/arch/${CMAKE_SYSTEM_PROCESSOR}/support/modules" "$/isofs/modules" COMMAND "${GRUB_MKRESCUE_EXE}" "-o" "$/${TARGET}.iso" "$/isofs" "$" "2>/dev/null" BYPRODUCTS "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/${TARGET}.iso" COMMENT "Creating bootable ISO image" ) endfunction()