Scrollable chronological photo grid with full-screen viewer, fetching previews from an Immich server via its REST API. Thumbnails stream in on a background thread over a keep-alive connection. JPEG decoding is done with libjpeg directly (vita2d's loader rejects Immich's APP2-first JPEGs). JSON parsed with vendored jsmn (the vitasdk jansson package is built as PIC, which vita-elf-create can't handle). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
51 lines
1009 B
CMake
51 lines
1009 B
CMake
cmake_minimum_required(VERSION 3.10)
|
|
|
|
if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
|
|
if(DEFINED ENV{VITASDK})
|
|
set(CMAKE_TOOLCHAIN_FILE "$ENV{VITASDK}/share/vita.toolchain.cmake" CACHE PATH "toolchain file")
|
|
else()
|
|
message(FATAL_ERROR "Please define VITASDK to point to your SDK path!")
|
|
endif()
|
|
endif()
|
|
|
|
project(vitaImmich C)
|
|
include("${VITASDK}/share/vita.cmake" REQUIRED)
|
|
|
|
set(VITA_APP_NAME "Vita Immich")
|
|
set(VITA_TITLEID "VIMM00001")
|
|
set(VITA_VERSION "01.00")
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2")
|
|
|
|
add_executable(${PROJECT_NAME}
|
|
src/main.c
|
|
)
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
vita2d
|
|
curl
|
|
ssl
|
|
crypto
|
|
zstd
|
|
freetype
|
|
png
|
|
jpeg
|
|
z
|
|
m
|
|
SceDisplay_stub
|
|
SceGxm_stub
|
|
SceSysmodule_stub
|
|
SceCtrl_stub
|
|
SceCommonDialog_stub
|
|
ScePgf_stub
|
|
SceAppMgr_stub
|
|
SceNet_stub
|
|
SceNetCtl_stub
|
|
)
|
|
|
|
vita_create_self(${PROJECT_NAME}.self ${PROJECT_NAME})
|
|
vita_create_vpk(${PROJECT_NAME}.vpk ${VITA_TITLEID} ${PROJECT_NAME}.self
|
|
VERSION ${VITA_VERSION}
|
|
NAME ${VITA_APP_NAME}
|
|
)
|