Update CPMUtil, and fix script

Signed-off-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
crueter 2026-03-26 00:14:29 -04:00 committed by lizzie
parent 7176248c1d
commit ff105b9b63
7 changed files with 17 additions and 58 deletions

View file

@ -4,36 +4,23 @@
# SPDX-License-Identifier: GPL-3.0-or-later
WORK_DIR="$PWD"
export IOS_SDK="$(xcrun --sdk iphoneos --show-sdk-path)"
xcrun --sdk iphoneos --show-sdk-path
[ ! -z "$IOS_SDK" ]
# TODO(crueter): FFmpeg for iOS
cmake -G Xcode -B build \
-DCMAKE_TOOLCHAIN_FILE="$WORK_DIR/.ci/ios/ios-toolchain.cmake" \
-DPLATFORM=OS64 \
-DARCHS="arm64" \
-DDEPLOYMENT_TARGET=16.0 \
-DCOCOA_LIBRARY="$IOS_SDK/System/Library/Frameworks/Cocoa.framework" \
-DCMAKE_C_COMPILER="$(xcrun --sdk iphoneos clang -arch arm64)" \
-DCMAKE_CXX_COMPILER="$(xcrun --sdk iphoneos clang++ -arch arm64)" \
-DCMAKE_C_COMPILER="$(xcrun --sdk iphoneos --find clang)" \
-DCMAKE_CXX_COMPILER="$(xcrun --sdk iphoneos --find clang++)" \
-DENABLE_LIBUSB=OFF \
-DENABLE_UPDATE_CHECKER=OFF \
-DENABLE_QT=OFF \
-DENABLE_OPENSSL=OFF \
-DHTTPLIB_USE_OPENSSL=OFF \
-DCPPHTTPLIB_USE_OPENSSL=OFF \
-DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=OFF \
-DENABLE_WEB_SERVICE=OFF \
-DENABLE_CUBEB=OFF \
-DYUZU_ROOM=OFF \
-DYUZU_ROOM_STANDALONE=OFF \
-DYUZU_STATIC_ROOM=OFF \
-DYUZU_CMD=OFF \
-DUSE_DISCORD_PRESENCE=OFF \
-DYUZU_USE_EXTERNAL_FFMPEG=ON \
-DYUZU_USE_EXTERNAL_SDL2=ON \
-DCPMUTIL_FORCE_BUNDLED=ON \
-DYUZU_USE_BUNDLED_SIRIT=OFF \
-DCMAKE_BUILD_TYPE=Release
cmake --build build -t eden-ios

View file

@ -42,7 +42,7 @@ if (PLATFORM_NETBSD)
set(ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH}:${CMAKE_SYSROOT}/usr/pkg/lib/ffmpeg7/pkgconfig")
endif()
cmake_dependent_option(YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "PLATFORM_LINUX" OFF)
cmake_dependent_option(YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "PLATFORM_LINUX OR WIN32 OR (APPLE AND NOT IOS)" OFF)
if (YUZU_STATIC_ROOM)
set(YUZU_ROOM ON)
set(YUZU_ROOM_STANDALONE ON)
@ -69,7 +69,7 @@ endif()
# qt stuff
option(ENABLE_QT "Enable the Qt frontend" ON)
option(ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF)
option(ENABLE_UPDATE_CHECKER "Enable update checker (for Qt and Android)" OFF)
cmake_dependent_option(ENABLE_UPDATE_CHECKER "Enable update checker (for Qt and Android)" OFF "ENABLE_QT OR ANDROID" OFF)
cmake_dependent_option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF "NOT YUZU_USE_BUNDLED_QT" OFF)
cmake_dependent_option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF "NOT YUZU_USE_BUNDLED_QT" OFF)
set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundled Qt libraries")
@ -177,7 +177,7 @@ cmake_dependent_option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MS
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
set(EXT_DEFAULT OFF)
if (MSVC OR ANDROID)
if (MSVC OR ANDROID OR IOS)
set(EXT_DEFAULT ON)
endif()
@ -187,7 +187,7 @@ cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external sour
# sirit
set(BUNDLED_SIRIT_DEFAULT OFF)
if (((MSVC AND NOT (CMAKE_BUILD_TYPE MATCHES "Deb")) OR ANDROID) AND NOT IOS)
if ((MSVC AND NOT (CMAKE_BUILD_TYPE MATCHES "Deb")) OR ANDROID)
set(BUNDLED_SIRIT_DEFAULT ON)
endif()
@ -215,7 +215,7 @@ option(NIGHTLY_BUILD "Use Nightly qualifiers in the update checker and build met
cmake_dependent_option(YUZU_ROOM "Enable dedicated room functionality" ON "NOT ANDROID AND NOT IOS" OFF)
cmake_dependent_option(YUZU_ROOM_STANDALONE "Enable standalone room executable" ON "YUZU_ROOM" OFF)
cmake_dependent_option(YUZU_CMD "Compile the eden-cli executable" ON "NOT ANDROID" OFF)
cmake_dependent_option(YUZU_CMD "Compile the eden-cli executable" ON "NOT ANDROID AND NOT IOS" OFF)
cmake_dependent_option(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR PLATFORM_LINUX" OFF)
@ -373,35 +373,7 @@ if (YUZU_USE_BUNDLED_OPENSSL)
endif()
endif()
if (IOS)
# TODO: this is horrific wtf
# Modify OpenSSL configuration to dynamically locate OpenSSL
if (NOT OPENSSL_ROOT_DIR)
find_program(HOMEBREW_EXECUTABLE brew)
if (HOMEBREW_EXECUTABLE)
execute_process(
COMMAND ${HOMEBREW_EXECUTABLE} --prefix openssl
OUTPUT_VARIABLE HOMEBREW_OPENSSL_PREFIX
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(OPENSSL_ROOT_DIR "${HOMEBREW_OPENSSL_PREFIX}")
endif()
endif()
# Adjust OpenSSL find_package to fallback to default paths
find_package(OpenSSL 3 QUIET PATHS ${OPENSSL_ROOT_DIR} PATHS /usr/local/opt/openssl /opt/homebrew/opt/openssl NO_DEFAULT_PATH)
if (NOT OpenSSL_FOUND)
find_package(OpenSSL 3 QUIET)
if (NOT OpenSSL_FOUND)
message(WARNING "OpenSSL not found. Some features may be disabled.")
endif()
endif()
# Ensure OpenSSL version 3 is correctly located
set(OPENSSL_ROOT_DIR "/opt/homebrew/opt/openssl@3")
set(OPENSSL_LIBRARIES "/opt/homebrew/opt/openssl@3/lib")
set(OPENSSL_INCLUDE_DIR "/opt/homebrew/opt/openssl@3/include")
else()
find_package(OpenSSL 3 REQUIRED)
endif()
find_package(OpenSSL 3 REQUIRED)
message(STATUS "Fetching needed dependencies with CPM")

View file

@ -3,7 +3,7 @@
set(CPM_SOURCE_CACHE "${PROJECT_SOURCE_DIR}/.cache/cpm" CACHE STRING "" FORCE)
if(MSVC OR ANDROID)
if(MSVC OR ANDROID OR IOS)
set(BUNDLED_DEFAULT ON)
else()
set(BUNDLED_DEFAULT OFF)
@ -692,7 +692,7 @@ function(AddCIPackage)
set(pkgname linux-aarch64)
elseif(APPLE AND NOT IOS)
set(pkgname macos-universal)
elseif(APPLE AND IOS AND ARCHITECTURE_arm64)
elseif(IOS AND ARCHITECTURE_arm64)
set(pkgname ios-aarch64)
endif()

View file

@ -18,3 +18,4 @@
- `linux-amd64`
- `linux-aarch64`
- `macos-universal`
- `ios-aarch64`

View file

@ -61,7 +61,8 @@ In order: OpenSSL CI, Boost (tag + artifact), Opus (options + find_args), discor
"version": "3.6.0",
"min_version": "1.1.1",
"disabled_platforms": [
"macos-universal"
"macos-universal",
"ios-aarch64"
]
},
"boost": {

View file

@ -83,8 +83,7 @@ ci_package() {
android-aarch64 android-x86_64 \
solaris-amd64 freebsd-amd64 openbsd-amd64 \
linux-amd64 linux-aarch64 \
ios-aarch64 \
macos-universal; do
macos-universal ios-aarch64; do
echo "-- * platform $platform"
case $DISABLED in

View file

@ -151,8 +151,7 @@ mingw-amd64 mingw-arm64
android-aarch64 android-x86_64
solaris-amd64 freebsd-amd64 openbsd-amd64
linux-amd64 linux-aarch64
ios-aarch64
macos-universal"
macos-universal ios-aarch64"
DISABLED_PLATFORMS="$reply"
fi