Merge pull request #16924 from warmenhoven/dev/warmenhoven/libretro-ios

Build for iOS as a libretro core
This commit is contained in:
Henrik Rydgård 2023-02-07 12:11:06 +01:00 committed by GitHub
commit 86a5a82050
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 29 additions and 3 deletions

View File

@ -49,6 +49,10 @@ include:
- project: 'libretro-infrastructure/ci-templates'
file: '/android-cmake.yml'
# iOS
- project: 'libretro-infrastructure/ci-templates'
file: '/ios-cmake.yml'
################################## CONSOLES ################################
#################################### MISC ##################################
@ -133,3 +137,12 @@ libretro-build-android-x86:
extends:
- .libretro-android-cmake-x86
- .core-defs
# iOS arm64
libretro-build-ios-arm64:
extends:
- .libretro-ios-cmake-arm64
- .core-defs
- .cmake-defs
variables:
CORE_ARGS: -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/ios.cmake -DLIBRETRO=ON

View File

@ -1130,7 +1130,7 @@ if(ANDROID)
set(nativeExtraLibs ${nativeExtraLibs} openxr)
endif()
# No target
elseif(IOS)
elseif(IOS AND NOT LIBRETRO)
set(nativeExtra ${nativeExtra}
ios/main.mm
ios/AppDelegate.mm
@ -1177,6 +1177,8 @@ elseif(IOS)
set_source_files_properties(UI/DarwinFileSystemServices.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
set_source_files_properties(Common/Battery/AppleBatteryClient.m PROPERTIES COMPILE_FLAGS -fobjc-arc)
set(TargetBin PPSSPP)
elseif(IOS AND LIBRETRO)
set(nativeExtraLibs ${nativeExtraLibs} "-framework GLKit")
elseif(USING_QT_UI)
set(CMAKE_AUTOMOC ON)
find_package(Qt5 COMPONENTS OpenGL Gui Core Multimedia)
@ -2493,7 +2495,7 @@ if(NOT ANDROID)
file(INSTALL assets/flash0 DESTINATION assets)
endif()
# packaging and code signing
if(IOS)
if(IOS AND NOT LIBRETRO)
set(DEPLOYMENT_TARGET 11.0)
file(GLOB IOSAssets ios/assets/*.png)
list(REMOVE_ITEM IOSAssets ${CMAKE_CURRENT_SOURCE_DIR}/ios/assets/Default-568h@2x.png)

View File

@ -1758,7 +1758,7 @@ void GLQueueRunner::fbo_unbind() {
glBindFramebuffer(GL_FRAMEBUFFER, g_defaultFBO);
#endif
#if PPSSPP_PLATFORM(IOS)
#if PPSSPP_PLATFORM(IOS) && !defined(__LIBRETRO__)
bindDefaultFBO();
#endif

View File

@ -644,6 +644,13 @@ static void check_variables(CoreParameter &coreParam)
g_Config.iCpuCore = (int)CPUCore::INTERPRETER;
}
if (System_GetPropertyBool(SYSPROP_CAN_JIT) == false && g_Config.iCpuCore == (int)CPUCore::JIT) {
// Just gonna force it to the IR interpreter on startup.
// We don't hide the option, but we make sure it's off on bootup. In case someone wants
// to experiment in future iOS versions or something...
g_Config.iCpuCore = (int)CPUCore::IR_JIT;
}
var.key = "ppsspp_fast_memory";
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
@ -1844,7 +1851,11 @@ bool System_GetPropertyBool(SystemProperty prop)
switch (prop)
{
case SYSPROP_CAN_JIT:
#if PPSSPP_PLATFORM(IOS)
return false;
#else
return true;
#endif
default:
return false;
}