diff --git a/.ci/build-mac.sh b/.ci/build-mac.sh index 9e16fce4ec..ae0341cc0e 100755 --- a/.ci/build-mac.sh +++ b/.ci/build-mac.sh @@ -13,31 +13,18 @@ export HOMEBREW_NO_AUTO_UPDATE=1 export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 export HOMEBREW_NO_ENV_HINTS=1 export HOMEBREW_NO_INSTALL_CLEANUP=1 -brew update brew install -f --overwrite --quiet ccache "llvm@$LLVM_COMPILER_VER" brew link -f --overwrite --quiet "llvm@$LLVM_COMPILER_VER" -if [ "$AARCH64" -eq 1 ]; then - brew install -f --overwrite --quiet googletest opencv@4 sdl3 vulkan-headers vulkan-loader molten-vk - brew unlink --quiet ffmpeg fmt qtbase qtsvg qtdeclarative protobuf || true -else - arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - arch -x86_64 /usr/local/bin/brew install -f --overwrite --quiet python@3.14 opencv@4 "llvm@$LLVM_COMPILER_VER" sdl3 vulkan-headers vulkan-loader molten-vk - arch -x86_64 /usr/local/bin/brew unlink --quiet ffmpeg qtbase qtsvg qtdeclarative protobuf || true -fi +brew install -f --overwrite --quiet googletest opencv@4 sdl3 vulkan-headers vulkan-loader molten-vk +brew unlink --quiet ffmpeg fmt qtbase qtsvg qtdeclarative protobuf || true export CXX=clang++ export CC=clang export BREW_PATH; -if [ "$AARCH64" -eq 1 ]; then - BREW_PATH="$(brew --prefix)" - export BREW_BIN="/opt/homebrew/bin" - export BREW_SBIN="/opt/homebrew/sbin" -else - BREW_PATH="$("/usr/local/bin/brew" --prefix)" - export BREW_BIN="/usr/local/bin" - export BREW_SBIN="/usr/local/sbin" -fi +BREW_PATH="$(brew --prefix)" +export BREW_BIN="$BREW_PATH/bin" +export BREW_SBIN="$BREW_PATH/sbin" export WORKDIR; WORKDIR="$(pwd)" @@ -68,7 +55,7 @@ ditto "/tmp/Qt/$QT_VER" "qt-downloader/$QT_VER" export Qt6_DIR="$WORKDIR/qt-downloader/$QT_VER/clang_64/lib/cmake/Qt$QT_VER_MAIN" export SDL3_DIR="$BREW_PATH/opt/sdl3/lib/cmake/SDL3" -export PATH="/opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/bin:$PATH" +export PATH="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/bin:$PATH" export LDFLAGS="-L$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/c++ -L$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/unwind -lunwind" export VULKAN_SDK @@ -82,12 +69,13 @@ LLVM_DIR="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER" git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/llvm/ && !/opencv/ && !/SDL/ && !/feralinteractive/ { print $3 }' .gitmodules) mkdir build && cd build || exit 1 +# The below should be uncommented once bugs with Qt 6 QListWidgets when using the OS 26 visual style are resolved. +# sudo xcode-select -switch /Applications/Xcode_26.3.app/Contents/Developer -if [ "$AARCH64" -eq 1 ]; then cmake .. \ -DBUILD_RPCS3_TESTS="${RUN_UNIT_TESTS}" \ -DRUN_RPCS3_TESTS="${RUN_UNIT_TESTS}" \ - -DCMAKE_OSX_DEPLOYMENT_TARGET=14.4 \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=15.0 \ -DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)" \ -DMACOSX_BUNDLE_SHORT_VERSION_STRING="${COMM_TAG}" \ -DMACOSX_BUNDLE_BUNDLE_VERSION="${COMM_COUNT}" \ @@ -102,31 +90,8 @@ cmake .. \ -DUSE_SYSTEM_SDL=ON \ -DUSE_SYSTEM_OPENCV=ON \ -G Ninja -else -cmake .. \ - -DBUILD_RPCS3_TESTS=OFF \ - -DRUN_RPCS3_TESTS=OFF \ - -DCMAKE_OSX_ARCHITECTURES=x86_64 \ - -DCMAKE_SYSTEM_PROCESSOR=x86_64 \ - -DCMAKE_TOOLCHAIN_FILE=buildfiles/cmake/TCDarwinX86_64.cmake \ - -DCMAKE_OSX_DEPLOYMENT_TARGET=14.4 \ - -DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)" \ - -DMACOSX_BUNDLE_SHORT_VERSION_STRING="${COMM_TAG}" \ - -DMACOSX_BUNDLE_BUNDLE_VERSION="${COMM_COUNT}"\ - -DSTATIC_LINK_LLVM=ON \ - -DUSE_SDL=ON \ - -DUSE_DISCORD_RPC=ON \ - -DUSE_AUDIOUNIT=ON \ - -DUSE_SYSTEM_FFMPEG=OFF \ - -DUSE_NATIVE_INSTRUCTIONS=OFF \ - -DUSE_PRECOMPILED_HEADERS=OFF \ - -DUSE_SYSTEM_MVK=ON \ - -DUSE_SYSTEM_SDL=ON \ - -DUSE_SYSTEM_OPENCV=ON \ - -G Ninja -fi -ninja; build_status=$?; +ninja -j4; build_status=$?; cd .. diff --git a/.ci/deploy-mac.sh b/.ci/deploy-mac.sh index b37b27c1e2..045b93ac9f 100755 --- a/.ci/deploy-mac.sh +++ b/.ci/deploy-mac.sh @@ -7,7 +7,6 @@ cd bin git clone --revision=a075e5e417f87675ea3137b7365f3e5a99608d72 https://github.com/KhronosGroup/MoltenVK.git cd MoltenVK ./fetchDependencies --macos -sudo xcode-select -switch /Applications/Xcode_16.2.app/Contents/Developer make macos MVK_USE_METAL_PRIVATE_API=1 cd ../ @@ -84,7 +83,7 @@ echo "[InternetShortcut]" > Quickstart.url echo "URL=https://rpcs3.net/quickstart" >> Quickstart.url echo "IconIndex=0" >> Quickstart.url -if [ "$AARCH64" -eq 1 ]; then +if [ "$(arch)" = "arm64" ]; then ARCHIVE_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${LVER}_macos_aarch64.7z" else ARCHIVE_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${LVER}_macos.7z" diff --git a/.github/workflows/rpcs3.yml b/.github/workflows/rpcs3.yml index e6877387b3..515555a224 100644 --- a/.github/workflows/rpcs3.yml +++ b/.github/workflows/rpcs3.yml @@ -123,15 +123,15 @@ jobs: matrix: include: - name: Intel - AARCH64: 0 + runs-on: macos-15-intel UPLOAD_COMMIT_HASH: 51ae32f468089a8169aaf1567de355ff4a3e0842 UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac - name: Apple Silicon - AARCH64: 1 + runs-on: macos-15 UPLOAD_COMMIT_HASH: 8e21bdbc40711a3fccd18fbf17b742348b0f4281 UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac-arm64 name: RPCS3 Mac ${{ matrix.name }} - runs-on: macos-14 + runs-on: ${{ matrix.runs-on }} env: CCACHE_DIR: /tmp/ccache_dir QT_VER: '6.11.1' @@ -140,8 +140,7 @@ jobs: RELEASE_MESSAGE: ../GitHubReleaseMessage.txt UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }} UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }} - AARCH64: ${{ matrix.AARCH64 }} - RUN_UNIT_TESTS: github.event_name == 'pull_request' && 'ON' || 'OFF' + RUN_UNIT_TESTS: ${{ matrix.name == 'Apple Silicon' && (github.event_name == 'pull_request' && 'ON') || 'OFF' }} steps: - name: Checkout repository uses: actions/checkout@main diff --git a/rpcs3/rpcs3.plist.in b/rpcs3/rpcs3.plist.in index 93a4f2c186..a56b8dca0e 100644 --- a/rpcs3/rpcs3.plist.in +++ b/rpcs3/rpcs3.plist.in @@ -31,7 +31,7 @@ LSApplicationCategoryType public.app-category.games LSMinimumSystemVersion - 14.4 + 15.0 NSCameraUsageDescription The camera will be used for PlayStation Eye emulation NSMicrophoneUsageDescription