# Copyright (c) 2026 Dominic Masters # # This software is released under the MIT License. # https://opensource.org/licenses/MIT if(NOT DEFINED ENV{VITASDK}) message(FATAL_ERROR "VITASDK environment variable is not set.") endif() include("$ENV{VITASDK}/share/vita.cmake" REQUIRED) set(VITA_APP_NAME "Dusk") set(VITA_TITLEID "DUSK00001") set(VITA_VERSION "01.00") find_package(SDL2 REQUIRED) # Custom flags for cglm set(CGLM_SHARED OFF CACHE BOOL "Build cglm shared" FORCE) set(CGLM_STATIC ON CACHE BOOL "Build cglm static" FORCE) find_package(cglm REQUIRED) # Link libraries target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PUBLIC ${SDL2_LIBRARIES} cglm SDL2 SDL2main zip bz2 z zstd crypto lzma m pthread stdc++ vitaGL mathneon vitashark kubridge_stub SceAppMgr_stub SceAudio_stub SceCtrl_stub SceCommonDialog_stub SceDisplay_stub SceKernelDmacMgr_stub SceGxm_stub SceShaccCg_stub SceSysmodule_stub ScePower_stub SceTouch_stub SceVshBridge_stub SceIofilemgr_stub SceShaccCgExt libtaihen_stub.a # SceKernel_stub SceAppUtil_stub SceHid_stub SceRtc_stub ) target_include_directories(${DUSK_LIBRARY_TARGET_NAME} PRIVATE ${SDL2_INCLUDE_DIRS} ) target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PUBLIC DUSK_SDL2 DUSK_OPENGL DUSK_VITA DUSK_INPUT_GAMEPAD DUSK_PLATFORM_ENDIAN_LITTLE DUSK_OPENGL_LEGACY DUSK_DISPLAY_WIDTH=960 DUSK_DISPLAY_HEIGHT=544 ) # Post-build: create SELF from the ELF binary (UNSAFE = homebrew, no signing) vita_create_self(${DUSK_BINARY_TARGET_NAME}.self ${DUSK_BINARY_TARGET_NAME} UNSAFE) # Post-build: package SELF + assets into a .vpk installable on the Vita vita_create_vpk(${DUSK_BINARY_TARGET_NAME}.vpk ${VITA_TITLEID} ${DUSK_BINARY_TARGET_NAME}.self VERSION ${VITA_VERSION} NAME ${VITA_APP_NAME} FILE ${DUSK_ASSETS_ZIP} dusk.dsk )