From ff105b9b63713cb2e962c7017efd90c7082fd9da Mon Sep 17 00:00:00 2001 From: crueter Date: Thu, 26 Mar 2026 00:14:29 -0400 Subject: [PATCH] Update CPMUtil, and fix script Signed-off-by: crueter --- .ci/ios/build.sh | 21 +++----------- CMakeLists.txt | 40 ++++----------------------- CMakeModules/CPMUtil.cmake | 4 +-- docs/CPMUtil/AddCIPackage.md | 1 + docs/CPMUtil/AddJsonPackage.md | 3 +- tools/cpm/package/fetch.sh | 3 +- tools/cpm/package/util/interactive.sh | 3 +- 7 files changed, 17 insertions(+), 58 deletions(-) diff --git a/.ci/ios/build.sh b/.ci/ios/build.sh index afbd8e3e4f..f199b66582 100755 --- a/.ci/ios/build.sh +++ b/.ci/ios/build.sh @@ -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 diff --git a/CMakeLists.txt b/CMakeLists.txt index f923105dec..aad977ae60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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") diff --git a/CMakeModules/CPMUtil.cmake b/CMakeModules/CPMUtil.cmake index 4892db0626..ca39a50331 100644 --- a/CMakeModules/CPMUtil.cmake +++ b/CMakeModules/CPMUtil.cmake @@ -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() diff --git a/docs/CPMUtil/AddCIPackage.md b/docs/CPMUtil/AddCIPackage.md index bc7c1ccfad..7319b514ff 100644 --- a/docs/CPMUtil/AddCIPackage.md +++ b/docs/CPMUtil/AddCIPackage.md @@ -18,3 +18,4 @@ - `linux-amd64` - `linux-aarch64` - `macos-universal` + - `ios-aarch64` diff --git a/docs/CPMUtil/AddJsonPackage.md b/docs/CPMUtil/AddJsonPackage.md index 464cd1731b..e655d794f5 100644 --- a/docs/CPMUtil/AddJsonPackage.md +++ b/docs/CPMUtil/AddJsonPackage.md @@ -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": { diff --git a/tools/cpm/package/fetch.sh b/tools/cpm/package/fetch.sh index 3baf35c079..54ea8c64c4 100755 --- a/tools/cpm/package/fetch.sh +++ b/tools/cpm/package/fetch.sh @@ -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 diff --git a/tools/cpm/package/util/interactive.sh b/tools/cpm/package/util/interactive.sh index 80a3685cc6..07087e5d10 100755 --- a/tools/cpm/package/util/interactive.sh +++ b/tools/cpm/package/util/interactive.sh @@ -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