isle-portable/PostbuildAction.cmake
VoxelTek f5d38d1dbb Generate iso, and hey it actually kinda runs!
Kinda starts running, but seems to "boot-loop", which is annoying. Also, `isle.ini` is empty, for some reason.
2025-08-07 22:45:12 +10:00

36 lines
1.4 KiB
CMake

function(add_xbox_build_steps TARGET_NAME XBE_TITLE XBOX_ISO_DIR)
# Ensure ISO output directory exists
file(MAKE_DIRECTORY ${XBOX_ISO_DIR})
# Convert EXE to XBE
add_custom_target(${TARGET_NAME}_cxbe_convert ALL
COMMENT "CXBE Conversion: [EXE -> XBE]"
VERBATIM
COMMAND "${CMAKE_COMMAND}" -E env
${NXDK_DIR}/tools/cxbe/cxbe
-OUT:${CMAKE_CURRENT_BINARY_DIR}/default.xbe
-TITLE:${XBE_TITLE}
${CMAKE_CURRENT_BINARY_DIR}/${XBE_TITLE}.exe > NUL 2>&1
)
add_dependencies(${TARGET_NAME}_cxbe_convert ${TARGET_NAME})
# Convert XBE to XISO
add_custom_target(${TARGET_NAME}_xbe_iso ALL
COMMENT "XISO Conversion: [XBE -> XISO]"
COMMAND ${CMAKE_COMMAND} -E copy
"${CMAKE_CURRENT_BINARY_DIR}/default.xbe"
"${XBOX_ISO_DIR}/default.xbe"
COMMAND "${CMAKE_COMMAND}" -E env
${NXDK_DIR}/tools/extract-xiso/build/extract-xiso
-c ${XBOX_ISO_DIR}
${CMAKE_CURRENT_BINARY_DIR}/${XBE_TITLE}.iso
WORKING_DIRECTORY ${XBOX_ISO_DIR}
VERBATIM
)
add_dependencies(${TARGET_NAME}_xbe_iso ${TARGET_NAME}_cxbe_convert)
# Silence output
set_target_properties(${TARGET_NAME}_cxbe_convert PROPERTIES OUTPUT_QUIET ON)
set_target_properties(${TARGET_NAME}_xbe_iso PROPERTIES OUTPUT_QUIET ON)
endfunction()