isle-portable/cmake/modules/pvr_psp2.cmake
2025-06-22 13:56:32 +02:00

57 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.21)
include(FetchContent)
# headers
FetchContent_Declare(
PVR_PSP2
URL https://github.com/GrapheneCt/PVR_PSP2/archive/refs/tags/v3.9.tar.gz
SOURCE_SUBDIR .
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
)
FetchContent_MakeAvailable(PVR_PSP2)
set(PVR_PSP2_SOURCE_DIR ${pvr_psp2_SOURCE_DIR})
set(PVR_PSP2_BINARY_DIR ${pvr_psp2_BINARY_DIR})
# stubs
file(DOWNLOAD
https://github.com/GrapheneCt/PVR_PSP2/releases/download/v3.9/vitasdk_stubs.zip
${PVR_PSP2_BINARY_DIR}/vitasdk_stubs.zip
EXPECTED_HASH SHA256=7ee2498b58cb97871fcb0e3e134ce1045acf2c22ce4873b1844a391b5da4fe47
)
# suprxs
file(DOWNLOAD
https://github.com/GrapheneCt/PVR_PSP2/releases/download/v3.9/PSVita_Release.zip
${PVR_PSP2_BINARY_DIR}/PSVita_Release.zip
EXPECTED_HASH SHA256=ed69be89f21c4894e8009a8c3567c89b1778c8db0beb3c2f4ea134adab4c494f
)
# extract
file(MAKE_DIRECTORY ${PVR_PSP2_BINARY_DIR}/extracted)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ${PVR_PSP2_BINARY_DIR}/vitasdk_stubs.zip
WORKING_DIRECTORY ${PVR_PSP2_BINARY_DIR}/extracted)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ${PVR_PSP2_BINARY_DIR}/PSVita_Release.zip
WORKING_DIRECTORY ${PVR_PSP2_BINARY_DIR}/extracted)
# create library
add_library(GLESv2 INTERFACE)
target_include_directories(GLESv2 INTERFACE
${PVR_PSP2_SOURCE_DIR}/include
)
target_link_directories(GLESv2 INTERFACE
${PVR_PSP2_BINARY_DIR}/extracted/libGLESv2_stub_vitasdk.a/
${PVR_PSP2_BINARY_DIR}/extracted/libgpu_es4_ext_stub_vitasdk.a/
${PVR_PSP2_BINARY_DIR}/extracted/libIMGEGL_stub_vitasdk.a/
)
target_link_libraries(GLESv2 INTERFACE
libGLESv2_stub_weak
libgpu_es4_ext_stub_weak
libIMGEGL_stub_weak
)
set_target_properties(GLESv2 PROPERTIES
MODULES "${PVR_PSP2_BINARY_DIR}/extracted/libGLESv2.suprx;${PVR_PSP2_BINARY_DIR}/extracted/libIMGEGL.suprx;${PVR_PSP2_BINARY_DIR}/extracted/libgpu_es4_ext.suprx;${PVR_PSP2_BINARY_DIR}/extracted/libpvrPSP2_WSEGL.suprx"
)