From 81c030d37980a8972b57b0b50d98dd45cd747974 Mon Sep 17 00:00:00 2001 From: olebeck <31539311+olebeck@users.noreply.github.com> Date: Tue, 12 Aug 2025 21:10:23 +0200 Subject: [PATCH] use vita_create_vpk and not cpack --- .github/workflows/ci.yml | 9 ++++++++- CMakeLists.txt | 33 ++++++++++++++++----------------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6032d85f..fb0698b0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -135,7 +135,7 @@ jobs: run: cmake --build build --verbose --config Release - name: Package (CPack) - if: ${{ !matrix.n3ds }} + if: ${{ !matrix.n3ds && !matrix.vita }} run: | cd build success=0 @@ -183,6 +183,13 @@ jobs: mkdir dist mv *.3dsx dist/ mv *.cia dist/ + + - name: Package (Vita) + if: ${{ matrix.vita }} + run: | + cd build + mkdir dist + mv *.vpk dist/ - name: Upload Build Artifacts uses: actions/upload-artifact@v4 diff --git a/CMakeLists.txt b/CMakeLists.txt index b9c666fb..31bd7742 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -850,23 +850,24 @@ if(VITA) vita_create_self(isle.self isle UNSAFE) - add_custom_command( - OUTPUT param.sfo - COMMAND ${VITA_MKSFOEX} -s APP_VER=${VITA_VERSION} -s TITLE_ID=${VITA_TITLEID} "${VITA_APP_NAME}" param.sfo + set(VPK_FILE_ARGS "") + file(GLOB_RECURSE SCE_SYS_FILES packaging/vita/sce_sys/*) + foreach(FILE ${SCE_SYS_FILES}) + file(RELATIVE_PATH REL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/packaging/vita/ ${FILE}) + list(APPEND VPK_FILE_ARGS "FILE") + list(APPEND VPK_FILE_ARGS ${FILE}) + list(APPEND VPK_FILE_ARGS ${REL_FILE}) + endforeach() + + vita_create_vpk(isle.vpk ${VITA_TITLEID} isle.self + FILE "${CMAKE_CURRENT_BINARY_DIR}/CONFIG/vita/isle-config.self" isle-config.self + FILE "${CMAKE_CURRENT_BINARY_DIR}/CONFIG/vita/config_plugin.rco" config_plugin.rco + VERSION ${VITA_VERSION} + NAME ${VITA_APP_NAME} + ${VPK_FILE_ARGS} ) - add_custom_target(param_sfo ALL DEPENDS param.sfo) - add_dependencies(isle param_sfo) - add_dependencies(isle config_plugin.rco_target) + add_dependencies(isle.vpk-vpk config_plugin.rco_target) - set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF) - set(CPACK_ARCHIVE_FILE_EXTENSION "vpk") - set(CPACK_PACKAGE_FILE_NAME "lego-island-${PROJECT_VERSION}") - - install(FILES "$/isle.self" DESTINATION . RENAME "eboot.bin") - install(FILES "$/isle-config.self" DESTINATION .) - install(FILES "$/config_plugin.rco" DESTINATION .) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/param.sfo" DESTINATION .) - install(DIRECTORY packaging/vita/sce_sys DESTINATION .) endif() if(MSVC OR IOS) @@ -877,8 +878,6 @@ if(MSVC OR IOS) endif() elseif(APPLE AND NOT IOS) set(CPACK_GENERATOR DragNDrop) -elseif(VITA) - set(CPACK_GENERATOR ZIP) else() set(CPACK_GENERATOR TGZ) endif()