include_guard(GLOBAL) function(target_generate_bootable_iso TARGET) find_package("grub-mkrescue") 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_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()