isle-portable/CONFIG/vita/CMakeLists.txt
2025-09-26 19:19:49 +02:00

74 lines
1.7 KiB
CMake

cmake_minimum_required(VERSION 3.25...4.0 FATAL_ERROR)
project(isle-config LANGUAGES CXX C VERSION 0.1)
include("${VITASDK}/share/vita.cmake" REQUIRED)
include(FetchContent)
FetchContent_Declare(
ScePaf_External
URL https://github.com/olebeck/ScePaf/releases/download/v21/ScePaf-1.0.0.zip
URL_HASH SHA256=357b914a5c99ea17afe0edc8787a05cbf2ecce2f1d73bb9be69f371a294b8943
UPDATE_DISCONNECTED TRUE
)
FetchContent_MakeAvailable(ScePaf_External)
FetchContent_Declare(
iniparser_paf
GIT_REPOSITORY "https://gitlab.com/iniparser/iniparser.git"
GIT_TAG "v4.2.6"
UPDATE_DISCONNECTED TRUE
EXCLUDE_FROM_ALL
PATCH_COMMAND patch -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/iniparser_paf.patch
)
block()
set(BUILD_DOCS off)
set(BUILD_SHARED_LIBS off)
FetchContent_MakeAvailable(iniparser_paf)
endblock()
add_executable(isle-config
src/paf_runtime.cpp
src/app.cpp
)
set_target_properties(isle-config PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
target_compile_options(isle-config PRIVATE
-fno-rtti -fno-exceptions -Wl,-q -Wall -fno-builtin -fshort-wchar -Wno-unused-function -Wno-sign-compare -fno-use-cxa-atexit
)
target_link_options(isle-config PRIVATE
-nostartfiles -nostdlib
)
target_link_libraries(isle-config PRIVATE
SceAppMgr_stub
SceLibKernel_stub
SceSysmodule_stub
ScePafToplevel_stub
ScePafResource_stub
ScePafWidget_stub
ScePafCommon_stub
ScePafStdc_stub
SceAppSettings_stub
SceFios2_stub
SceLibc_stub
iniparser_paf-static
)
vita_create_self(isle-config.self isle-config
CONFIG exports.yml
UNSAFE
STRIPPED
REL_OPTIMIZE
)
include(${scepaf_external_SOURCE_DIR}/rco.cmake)
make_rco(cxml/config_plugin.xml config_plugin.rco)