diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh
old mode 100644
new mode 100755
index 0b7d554504..e30b5487bf
--- a/.ci/build-mac-arm64.sh
+++ b/.ci/build-mac-arm64.sh
@@ -1,66 +1,25 @@
#!/bin/sh -ex
# shellcheck disable=SC2086
-brew_arm64_install_packages() {
- for pkg in "$@"; do
- echo "Fetching bottle for $pkg (arm64)..."
- bottle_path="$("$BREW_ARM64_PATH/bin/brew" --cache --bottle-tag=arm64_sonoma "$pkg")"
- if [ ! -f "$bottle_path" ]; then
- if ! "$BREW_ARM64_PATH/bin/brew" fetch --force --verbose --debug --bottle-tag=arm64_sonoma "$pkg"; then
- echo "Failed to fetch bottle for $pkg"
- return 1
- fi
- bottle_path="$("$BREW_ARM64_PATH/bin/brew" --cache --bottle-tag=arm64_sonoma "$pkg")"
- fi
-
- echo "Installing $pkg (arm64)..."
- "$BREW_ARM64_PATH/bin/brew" install --force --force-bottle --ignore-dependencies "$bottle_path" || true
- done
-}
-
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
export HOMEBREW_NO_INSTALL_CLEANUP=1
-/usr/local/bin/brew update
-sudo rm -rf /usr/local/Cellar/curl /usr/local/opt/curl
-/usr/local/bin/brew install -f --overwrite curl
-/usr/local/bin/brew uninstall -f --ignore-dependencies ffmpeg
-/usr/local/bin/brew install -f --build-from-source ffmpeg@5 || true
-/usr/local/bin/brew install -f --overwrite python || true
-/usr/local/bin/brew link --overwrite python || true
-/usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg
-/usr/local/bin/brew link -f curl || true
-/usr/local/bin/brew install llvm@$LLVM_COMPILER_VER glew cmake sdl3 vulkan-headers coreutils
-/usr/local/bin/brew link -f llvm@$LLVM_COMPILER_VER ffmpeg@5 || true
-
-export BREW_ARM64_PATH="/opt/homebrew1"
-sudo mkdir -p "$BREW_ARM64_PATH"
-sudo chmod 777 "$BREW_ARM64_PATH"
-curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "$BREW_ARM64_PATH"
-
-#"$BREW_ARM64_PATH/bin/brew" update
-# libvorbis requires Homebrew-installed curl, but we can't run it on x64, and we also need the aarch64 libs, so we swap the binary
-brew_arm64_install_packages curl
-mv /opt/homebrew1/opt/curl/bin/curl /opt/homebrew1/opt/curl/bin/curl.bak
-ln -s /usr/local/opt/curl/bin/curl /opt/homebrew1/opt/curl/bin/curl
-
-brew_arm64_install_packages 0mq aom aribb24 ca-certificates cjson dav1d ffmpeg@5 fontconfig freetype freetype2 gettext glew gmp gnutls lame libbluray libidn2 libnettle libogg libpng librist libsodium libsoxr libtasn libtasn1 libunistring libvmaf libvorbis libvpx libx11 libxau libxcb libxdmcp llvm@$LLVM_COMPILER_VER mbedtls molten-vk nettle opencore-amr openjpeg openssl opus p11-kit pkg-config pkgconfig pzstd rav1e sdl3 snappy speex srt svt-av1 theora vulkan-headers webp x264 x265 xz z3 zeromq zmq zstd
-"$BREW_ARM64_PATH/bin/brew" link -f ffmpeg@5
-ln -s "/opt/homebrew1/opt/llvm@$LLVM_COMPILER_VER/lib/unwind/libunwind.1.dylib" "/opt/homebrew1/opt/llvm@$LLVM_COMPILER_VER/lib/libunwind.1.dylib"
+/opt/homebrew/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv gnutls freetype #create-dmg
+/opt/homebrew/bin/brew install -f ffmpeg@5
+/opt/homebrew/bin/brew install "llvm@$LLVM_COMPILER_VER" glew cmake sdl3 vulkan-headers coreutils
+/opt/homebrew/bin/brew link -f "llvm@$LLVM_COMPILER_VER" ffmpeg@5
# moltenvk based on commit for 1.3.0 release
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/7255441cbcafabaa8950f67c7ec55ff499dbb2d3/Formula/m/molten-vk.rb
-/usr/local/bin/brew install -f --overwrite ./molten-vk.rb
+/opt/homebrew/bin/brew install -f --overwrite ./molten-vk.rb
export CXX=clang++
export CC=clang
export BREW_PATH;
BREW_PATH="$(brew --prefix)"
-export BREW_X64_PATH;
-BREW_X64_PATH="$("/usr/local/bin/brew" --prefix)"
-export BREW_BIN="/usr/local/bin"
-export BREW_SBIN="/usr/local/sbin"
+export BREW_BIN="/opt/homebrew/bin"
+export BREW_SBIN="/opt/homebrew/sbin"
export CMAKE_EXTRA_OPTS='-DLLVM_TARGETS_TO_BUILD=arm64'
export WORKDIR;
@@ -75,36 +34,39 @@ if [ ! -d "/tmp/Qt/$QT_VER" ]; then
# nested Qt 6.9.0 URL workaround
# sed -i '' "s/'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/'qt{0}_{0}{1}{2}'.format(major, minor, patch), 'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/g" qt-downloader
# sed -i '' "s/'{}\/{}\/qt{}_{}\/'/'{0}\/{1}\/qt{2}_{3}\/qt{2}_{3}\/'/g" qt-downloader
+ # archived Qt 6.7.3 URL workaround
+ sed -i '' "s/official_releases/archive/g" qt-downloader
cd "/tmp/Qt"
- "$BREW_X64_PATH/bin/pipenv" run pip3 install py7zr requests semantic_version lxml
+ arch -arm64 "$BREW_PATH/bin/pipenv" run pip3 uninstall py7zr requests semantic_version lxml
+ arch -arm64 "$BREW_PATH/bin/pipenv" run pip3 install py7zr requests semantic_version lxml --no-cache
mkdir -p "$QT_VER/macos" ; ln -s "macos" "$QT_VER/clang_64"
# sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader" # Qt 6.9.0 workaround
- "$BREW_X64_PATH/bin/pipenv" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats # -o "$QT_VER/clang_64"
+ arch -arm64 "$BREW_PATH/bin/pipenv" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats # -o "$QT_VER/clang_64"
fi
cd "$WORKDIR"
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_ARM64_PATH/opt/sdl3/lib/cmake/SDL3"
+export SDL3_DIR="$BREW_PATH/opt/sdl3/lib/cmake/SDL3"
-export PATH="$BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER/bin:$WORKDIR/qt-downloader/$QT_VER/clang_64/bin:$BREW_BIN:$BREW_SBIN:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:$PATH"
-export LDFLAGS="-L$BREW_ARM64_PATH/lib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libavcodec.dylib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libavformat.dylib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libavutil.dylib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libswscale.dylib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libswresample.dylib $BREW_ARM64_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++.1.dylib $BREW_ARM64_PATH/lib/libSDL3.dylib $BREW_ARM64_PATH/lib/libGLEW.dylib $BREW_ARM64_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/libunwind.1.dylib -Wl,-rpath,$BREW_ARM64_PATH/lib"
-export CPPFLAGS="-I$BREW_ARM64_PATH/include -I$BREW_X64_PATH/include -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
+export PATH="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/bin:$WORKDIR/qt-downloader/$QT_VER/clang_64/bin:$BREW_BIN:$BREW_SBIN:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:$PATH"
+export LDFLAGS="-L$BREW_PATH/lib $BREW_PATH/opt/ffmpeg@5/lib/libavcodec.dylib $BREW_PATH/opt/ffmpeg@5/lib/libavformat.dylib $BREW_PATH/opt/ffmpeg@5/lib/libavutil.dylib $BREW_PATH/opt/ffmpeg@5/lib/libswscale.dylib $BREW_PATH/opt/ffmpeg@5/lib/libswresample.dylib $BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++.1.dylib $BREW_PATH/lib/libSDL3.dylib $BREW_PATH/lib/libGLEW.dylib $BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/unwind/libunwind.1.dylib -Wl,-rpath,$BREW_PATH/lib"
+export CPPFLAGS="-I$BREW_PATH/include -I$BREW_PATH/include -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
export CFLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
-export LIBRARY_PATH="$BREW_ARM64_PATH/lib"
-export LD_LIBRARY_PATH="$BREW_ARM64_PATH/lib"
+export LIBRARY_PATH="$BREW_PATH/lib"
+export LD_LIBRARY_PATH="$BREW_PATH/lib"
export VULKAN_SDK
-VULKAN_SDK="$BREW_ARM64_PATH/opt/molten-vk"
+VULKAN_SDK="$BREW_PATH/opt/molten-vk"
ln -s "$VULKAN_SDK/lib/libMoltenVK.dylib" "$VULKAN_SDK/lib/libvulkan.dylib" || true
export VK_ICD_FILENAMES="$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json"
export LLVM_DIR
-LLVM_DIR="$BREW_ARM64_PATH/opt/llvm@$LLVM_COMPILER_VER"
-# exclude ffmpeg, LLVM, and sdl from submodule update
+LLVM_DIR="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER"
+# exclude ffmpeg, LLVM, opencv, and sdl from submodule update
# shellcheck disable=SC2046
-git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/SDL/ { print $3 }' .gitmodules)
+git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/opencv/ && !/SDL/ { print $3 }' .gitmodules)
# 3rdparty fixes
sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVersionNumber = 1343;/g" 3rdparty/hidapi/hidapi/mac/hid.c
@@ -114,7 +76,7 @@ mkdir build && cd build || exit 1
export MACOSX_DEPLOYMENT_TARGET=14.0
-"$BREW_X64_PATH/bin/cmake" .. \
+"$BREW_PATH/bin/cmake" .. \
-DBUILD_RPCS3_TESTS=OFF \
-DRUN_RPCS3_TESTS=OFF \
-DUSE_SDL=ON \
@@ -139,13 +101,11 @@ export MACOSX_DEPLOYMENT_TARGET=14.0
-DUSE_SYSTEM_FAUDIO=OFF \
-DUSE_SYSTEM_SDL=ON \
-DUSE_SYSTEM_OPENCV=ON \
- $CMAKE_EXTRA_OPTS \
+ "$CMAKE_EXTRA_OPTS" \
-DLLVM_TARGET_ARCH=arm64 \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
- -DCMAKE_IGNORE_PATH="$BREW_X64_PATH/lib" \
- -DCMAKE_IGNORE_PREFIX_PATH=/usr/local/opt \
- -DCMAKE_SYSTEM_PROCESSOR=arm64 \
- -DCMAKE_TOOLCHAIN_FILE=buildfiles/cmake/TCDarwinARM64.cmake \
+ -DCMAKE_IGNORE_PATH="$BREW_PATH/lib" \
+ -DCMAKE_IGNORE_PREFIX_PATH=/opt/homebrew/opt \
-DCMAKE_CXX_FLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)" \
diff --git a/.ci/build-mac.sh b/.ci/build-mac.sh
old mode 100644
new mode 100755
index 83ab07c1d9..5691512d69
--- a/.ci/build-mac.sh
+++ b/.ci/build-mac.sh
@@ -3,18 +3,16 @@
# shellcheck disable=SC2086
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
-brew unlink certifi
-brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg
+export HOMEBREW_NO_INSTALL_CLEANUP=1
#/usr/sbin/softwareupdate --install-rosetta --agree-to-license
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
arch -x86_64 /usr/local/bin/brew update
arch -x86_64 /usr/local/bin/brew install -f --overwrite python || arch -x86_64 /usr/local/bin/brew link --overwrite python
-arch -x86_64 /usr/local/bin/brew uninstall -f --ignore-dependencies ffmpeg
-arch -x86_64 /usr/local/bin/brew install -f --build-from-source ffmpeg@5
-arch -x86_64 /usr/local/bin/brew reinstall -f --build-from-source gnutls freetype
-arch -x86_64 /usr/local/bin/brew install llvm@$LLVM_COMPILER_VER glew cmake sdl3 vulkan-headers coreutils
-arch -x86_64 /usr/local/bin/brew link -f llvm@$LLVM_COMPILER_VER ffmpeg@5
+arch -x86_64 /usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv gnutls freetype #create-dmg
+arch -x86_64 /usr/local/bin/brew install -f ffmpeg@5
+arch -x86_64 /usr/local/bin/brew install "llvm@$LLVM_COMPILER_VER" glew cmake sdl3 vulkan-headers coreutils
+arch -x86_64 /usr/local/bin/brew link -f "llvm@$LLVM_COMPILER_VER" ffmpeg@5
# moltenvk based on commit for 1.3.0 release
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/7255441cbcafabaa8950f67c7ec55ff499dbb2d3/Formula/m/molten-vk.rb
@@ -22,8 +20,6 @@ arch -x86_64 /usr/local/bin/brew install -f --overwrite ./molten-vk.rb
export CXX=clang++
export CC=clang
-export BREW_PATH;
-BREW_PATH="$(brew --prefix)"
export BREW_X64_PATH;
BREW_X64_PATH="$("/usr/local/bin/brew" --prefix)"
export BREW_BIN="/usr/local/bin"
@@ -42,11 +38,13 @@ if [ ! -d "/tmp/Qt/$QT_VER" ]; then
# nested Qt 6.9.0 URL workaround
# sed -i '' "s/'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/'qt{0}_{0}{1}{2}'.format(major, minor, patch), 'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/g" qt-downloader
# sed -i '' "s/'{}\/{}\/qt{}_{}\/'/'{0}\/{1}\/qt{2}_{3}\/qt{2}_{3}\/'/g" qt-downloader
+ # archived Qt 6.7.3 URL workaround
+ sed -i '' "s/official_releases/archive/g" qt-downloader
cd "/tmp/Qt"
- "$BREW_X64_PATH/bin/pipenv" run pip3 install py7zr requests semantic_version lxml
+ arch -x86_64 "$BREW_X64_PATH/bin/pipenv" --python "$BREW_X64_PATH/bin/python3" run pip3 install py7zr requests semantic_version lxml
mkdir -p "$QT_VER/macos" ; ln -s "macos" "$QT_VER/clang_64"
# sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader" # Qt 6.9.0 workaround
- "$BREW_X64_PATH/bin/pipenv" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats # -o "$QT_VER/clang_64"
+ arch -x86_64 "$BREW_X64_PATH/bin/pipenv" --python "$BREW_X64_PATH/bin/python3" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats # -o "$QT_VER/clang_64"
fi
cd "$WORKDIR"
@@ -76,6 +74,7 @@ git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ &&
# 3rdparty fixes
sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVersionNumber = 1343;/g" 3rdparty/hidapi/hidapi/mac/hid.c
+rm -rf build
mkdir build && cd build || exit 1
export MACOSX_DEPLOYMENT_TARGET=14.0
@@ -105,16 +104,17 @@ export MACOSX_DEPLOYMENT_TARGET=14.0
-DUSE_SYSTEM_FAUDIO=OFF \
-DUSE_SYSTEM_SDL=ON \
-DUSE_SYSTEM_OPENCV=ON \
- $CMAKE_EXTRA_OPTS \
+ "$CMAKE_EXTRA_OPTS" \
-DLLVM_TARGET_ARCH=X86_64 \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
- -DCMAKE_IGNORE_PATH="$BREW_PATH/lib" \
+ -DCMAKE_IGNORE_PATH="$BREW_X64_PATH/lib" \
+ -DCMAKE_IGNORE_PREFIX_PATH=/usr/local/opt \
-DCMAKE_CXX_FLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)" \
-G Ninja
-"$BREW_PATH/bin/ninja"; build_status=$?;
+"$BREW_X64_PATH/bin/ninja"; build_status=$?;
cd ..
diff --git a/.ci/deploy-mac-arm64.sh b/.ci/deploy-mac-arm64.sh
old mode 100644
new mode 100755
index da1fbe9165..e7de472378
--- a/.ci/deploy-mac-arm64.sh
+++ b/.ci/deploy-mac-arm64.sh
@@ -16,9 +16,9 @@ echo "AVVER=$AVVER" >> ../.ci/ci-vars.env
cd bin
mkdir "rpcs3.app/Contents/lib/" || true
-cp "$(realpath /opt/homebrew1/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib)" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
-cp "$(realpath /opt/homebrew1/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
-cp "$(realpath /opt/homebrew1/lib/libintl.8.dylib)" "rpcs3.app/Contents/lib/libintl.8.dylib"
+cp "$(realpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib)" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
+cp "$(realpath /opt/homebrew/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
+cp "$(realpath /opt/homebrew/lib/libintl.8.dylib)" "rpcs3.app/Contents/lib/libintl.8.dylib"
rm -rf "rpcs3.app/Contents/Frameworks/QtPdf.framework" \
"rpcs3.app/Contents/Frameworks/QtQml.framework" \
@@ -33,10 +33,8 @@ rm -rf "rpcs3.app/Contents/Frameworks/QtPdf.framework" \
# Hack
install_name_tool \
--delete_rpath /opt/homebrew1/lib \
-delete_rpath /opt/homebrew/lib \
--delete_rpath /opt/homebrew1/opt/llvm@$LLVM_COMPILER_VER/lib \
--delete_rpath /usr/local/lib RPCS3.app/Contents/MacOS/rpcs3
+-delete_rpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib RPCS3.app/Contents/MacOS/rpcs3
#-delete_rpath /opt/homebrew1/Cellar/sdl3/3.2.8/lib
# Need to do this rename hack due to case insensitive filesystem
@@ -67,7 +65,7 @@ echo "IconIndex=0" >> Quickstart.url
#SHA256SUM=$(shasum -a 256 "$DMG_FILEPATH" | awk '{ print $1 }')
ARCHIVE_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos_arm64.7z"
-"$BREW_X64_PATH/bin/7z" a -mx9 "$ARCHIVE_FILEPATH" RPCS3.app Quickstart.url
+"$BREW_PATH/bin/7z" a -mx9 "$ARCHIVE_FILEPATH" RPCS3.app Quickstart.url
FILESIZE=$(stat -f %z "$ARCHIVE_FILEPATH")
SHA256SUM=$(shasum -a 256 "$ARCHIVE_FILEPATH" | awk '{ print $1 }')
diff --git a/.ci/deploy-mac.sh b/.ci/deploy-mac.sh
old mode 100644
new mode 100755
diff --git a/.ci/export-cirrus-vars.sh b/.ci/export-cirrus-vars.sh
old mode 100644
new mode 100755
diff --git a/.ci/get_keys-windows.sh b/.ci/get_keys-windows.sh
old mode 100644
new mode 100755
diff --git a/.ci/optimize-mac.sh b/.ci/optimize-mac.sh
old mode 100644
new mode 100755
diff --git a/.github/workflows/rpcs3.yml b/.github/workflows/rpcs3.yml
index f09655cb76..55b8c09aa6 100644
--- a/.github/workflows/rpcs3.yml
+++ b/.github/workflows/rpcs3.yml
@@ -104,6 +104,83 @@ jobs:
export AVVER="${COMM_TAG}-${COMM_COUNT}"
.ci/github-upload.sh
+ Mac_Build:
+ # Only run push event on master branch of main repo, but run all PRs
+ if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - name: Intel
+ build_sh: "arch -X86_64 .ci/build-mac.sh"
+ UPLOAD_COMMIT_HASH: 8e21bdbc40711a3fccd18fbf17b742348b0f4281
+ UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-mac"
+ - name: Apple Silicon
+ build_sh: ".ci/build-mac-arm64.sh"
+ UPLOAD_COMMIT_HASH: 51ae32f468089a8169aaf1567de355ff4a3e0842
+ UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-mac-arm64"
+ name: RPCS3 Mac ${{ matrix.name }}
+ runs-on: macos-14
+ env:
+ CCACHE_DIR: "/tmp/ccache_dir"
+ CI_HAS_ARTIFACTS: true
+ QT_VER: '6.7.3'
+ QT_VER_MAIN: '6'
+ LLVM_COMPILER_VER: '19'
+ RELEASE_MESSAGE: "../GitHubReleaseMessage.txt"
+ UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }}
+ UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }}
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 0
+
+ - name: Setup Cache
+ uses: actions/cache@main
+ with:
+ path: ${{ env.CCACHE_DIR }}
+ key: ${{ runner.os }}-ccache-${{ matrix.name }}-${{github.run_id}}
+ restore-keys: |
+ ${{ runner.os }}-ccache-${{ matrix.name }}-
+
+ - name: Setup Qt Cache
+ uses: actions/cache@main
+ with:
+ path: "/tmp/Qt"
+ key: ${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }}
+ restore-keys: |
+ ${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }}
+
+ - name: Build
+ run: |
+ ${{ matrix.build_sh }}
+
+ - name: Upload artifacts
+ uses: actions/upload-artifact@main
+ with:
+ name: RPCS3 for Mac (${{ matrix.name }})
+ path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}
+ compression-level: 0
+
+ - name: Export Variables
+ run: |
+ while IFS='=' read -r key val; do
+ # Skip lines that are empty or start with '#'
+ [[ -z "$key" || "$key" =~ ^# ]] && continue
+ echo "$key=$val" >> "${{ github.env }}"
+ done < .ci/ci-vars.env
+
+ - name: Deploy master build to GitHub Releases
+ if: |
+ github.event_name != 'pull_request' &&
+ github.repository == 'RPCS3/rpcs3' &&
+ github.ref == 'refs/heads/master'
+ env:
+ RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }}
+ run: |
+ .ci/github-upload.sh
+
Windows_Build:
# Only run push event on master branch of main repo, but run all PRs
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
diff --git a/README.md b/README.md
index c47af8d204..fb49b2dc01 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,6 @@
RPCS3
=====
-[](https://dev.azure.com/nekotekina/nekotekina/_build?definitionId=8&_a=summary&repositoryFilter=4)
[](https://cirrus-ci.com/github/RPCS3/rpcs3)
[](https://github.com/RPCS3/rpcs3/actions/workflows/rpcs3.yml)
[](https://discord.gg/rpcs3)
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
deleted file mode 100644
index 97970a521d..0000000000
--- a/azure-pipelines.yml
+++ /dev/null
@@ -1,260 +0,0 @@
-trigger:
- branches:
- include:
- - master
- tags:
- exclude:
- - '*'
-pr:
- branches:
- include:
- - master
-jobs:
-# - job: Linux_Build
-# strategy:
-# matrix:
-# Clang:
-# COMPILER: clang
-# GCC:
-# COMPILER: gcc
-# variables:
-# CCACHE_DIR: $(Pipeline.Workspace)/ccache
-# CI_HAS_ARTIFACTS: true
-# UPLOAD_COMMIT_HASH: d812f1254a1157c80fd402f94446310560f54e5f
-# UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-linux"
-# DEPLOY_APPIMAGE: true
-# APPDIR: "/rpcs3/build/appdir"
-# ARTDIR: "/root/artifacts"
-# RELEASE_MESSAGE: "/rpcs3/GitHubReleaseMessage.txt"
-
-# pool:
-# vmImage: 'ubuntu-latest'
-
-# steps:
-# - task: Cache@2
-# inputs:
-# key: ccache | $(Agent.OS) | $(COMPILER) | $(Build.SourceVersion)
-# restoreKeys: |
-# ccache | $(Agent.OS) | $(COMPILER)
-# path: $(CCACHE_DIR)
-# displayName: ccache
-
-# - bash: |
-# docker pull --quiet rpcs3/rpcs3-ci-jammy:1.6
-# docker run \
-# -v $(pwd):/rpcs3 \
-# --env-file .ci/docker.env \
-# -v $CCACHE_DIR:/root/.ccache \
-# -v $BUILD_ARTIFACTSTAGINGDIRECTORY:/root/artifacts \
-# rpcs3/rpcs3-ci-jammy:1.6 \
-# /rpcs3/.ci/build-linux.sh
-# displayName: Docker setup and build
-
-# - publish: $(Build.ArtifactStagingDirectory)
-# condition: succeeded()
-# artifact: RPCS3 for Linux ($(COMPILER))
-
-# - bash: |
-# COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ./rpcs3/rpcs3_version.cpp)
-# COMM_COUNT=$(git rev-list --count HEAD)
-# COMM_HASH=$(git rev-parse --short=8 HEAD)
-
-# export AVVER="${COMM_TAG}-${COMM_COUNT}"
-
-# .ci/github-upload.sh
-# condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.Repository.Name'], 'RPCS3/rpcs3'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['COMPILER'], 'clang'))
-# displayName: Push build to GitHub
-# env:
-# RPCS3_TOKEN: $(RPCS3-Token)
-
-# - job: Windows_Build
-# variables:
-# COMPILER: msvc
-# QT_VER_MAIN: '6'
-# QT_VER: '6.9.0'
-# QT_VER_MSVC: 'msvc2022'
-# QT_DATE: '202503301022'
-# QTDIR: C:\Qt\$(QT_VER)\$(QT_VER_MSVC)_64
-# LLVM_VER: '19.1.7'
-# VULKAN_VER: '1.3.268.0'
-# VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5'
-# VULKAN_SDK: C:\VulkanSDK\$(VULKAN_VER)
-# CCACHE_SHA: '6252f081876a9a9f700fae13a5aec5d0d486b28261d7f1f72ac11c7ad9df4da9'
-# CCACHE_BIN_DIR: 'C:\ccache_bin'
-# CCACHE_DIR: 'C:\ccache'
-# CCACHE_INODECACHE: 'true'
-# CCACHE_SLOPPINESS: 'time_macros'
-# DEPS_CACHE_DIR: ./dependency_cache
-# UPLOAD_COMMIT_HASH: 7d09e3be30805911226241afbb14f8cdc2eb054e
-# UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-win"
-
-# pool:
-# vmImage: "windows-latest"
-
-# steps:
-# - bash: .ci/get_keys-windows.sh
-# displayName: Get Cache Keys
-
-# - task: Cache@2
-# inputs:
-# key: ccache | $(Agent.OS) | $(COMPILER) | "$(Build.SourceVersion)"
-# path: $(CCACHE_DIR)
-# restoreKeys:
-# ccache | $(Agent.OS) | $(COMPILER)
-# displayName: Build Ccache
-
-# - task: Cache@2
-# inputs:
-# key: $(Agent.OS) | $(COMPILER) | "$(QT_VER)" | $(VULKAN_SDK_SHA) | $(CCACHE_SHA) | llvm.lock
-# path: $(DEPS_CACHE_DIR)
-# displayName: Dependencies Cache
-
-# - bash: .ci/setup-windows.sh
-# displayName: Download and unpack dependencies
-
-# - bash: .ci/export-azure-vars.sh
-# displayName: Export Variables
-
-# - task: VSBuild@1
-# inputs:
-# solution: 'rpcs3.sln'
-# maximumCpuCount: true
-# platform: x64
-# configuration: 'Release'
-# msbuildArgs: /p:CLToolPath=$(CCACHE_BIN_DIR) /p:UseMultiToolTask=true /p:CustomAfterMicrosoftCommonTargets="$(Build.SourcesDirectory)\buildfiles\msvc\ci_only.targets"
-# displayName: Compile RPCS3
-
-# - bash: .ci/deploy-windows.sh
-# displayName: Pack up build artifacts
-
-# - publish: $(Build.ArtifactStagingDirectory)
-# condition: succeeded()
-# artifact: RPCS3 for Windows
-
-# - bash: .ci/github-upload.sh
-# condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.Repository.Name'], 'RPCS3/rpcs3'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
-# displayName: Push build to GitHub
-# env:
-# RPCS3_TOKEN: $(RPCS3-Token)
-
-- job: Mac_Build_x86_64
- timeoutInMinutes: 180
- variables:
- CCACHE_DIR: "/tmp/ccache_dir"
- CCACHE_MAXSIZE: 300M
- CI_HAS_ARTIFACTS: true
- UPLOAD_COMMIT_HASH: 51ae32f468089a8169aaf1567de355ff4a3e0842
- UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-mac"
- RELEASE_MESSAGE: "../GitHubReleaseMessage.txt"
- ARTDIR: $(Build.ArtifactStagingDirectory)
- QT_VER: '6.7.3'
- QT_VER_MAIN: '6'
- LLVM_COMPILER_VER: '19'
-
- pool:
- vmImage: "macOS-14"
-
- steps:
- - task: Cache@2
- inputs:
- key: ccache | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(Build.SourceVersion)"
- path: $(CCACHE_DIR)
- restoreKeys: |
- ccache | "$(Agent.OS)" | "$(Agent.OSArchitecture)"
- displayName: Ccache cache
-
- - task: Cache@2
- inputs:
- key: qt | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(QT_VER)"
- path: /tmp/Qt
- restoreKeys: |
- qt | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(QT_VER)"
- displayName: Qt cache
-
- # - task: Cache@2
- # inputs:
- # key: brew | "$(Agent.OS)"
- # path: /Users/runner/Library/Caches/Homebrew
- # restoreKeys: |
- # brew | "$(Agent.OS)"
- # displayName: Homebrew cache
-
- - bash: |
- chmod +x ".ci/build-mac.sh"
- chmod +x ".ci/deploy-mac.sh"
- chmod +x ".ci/optimize-mac.sh"
- ".ci/build-mac.sh"
- displayName: Build macOS (x86_64)
-
- - publish: $(Build.ArtifactStagingDirectory)
- condition: succeeded()
- artifact: RPCS3 for Mac (Intel)
-
- - bash: |
- source './.ci/export-cirrus-vars.sh'
- .ci/github-upload.sh
- condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.Repository.Name'], 'RPCS3/rpcs3'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
- displayName: Push build to GitHub
- env:
- RPCS3_TOKEN: $(RPCS3-Token)
-
-- job: Mac_Build_arm64
- timeoutInMinutes: 180
- variables:
- CCACHE_DIR: "/tmp/ccache_dir"
- CCACHE_MAXSIZE: 300M
- CI_HAS_ARTIFACTS: true
- UPLOAD_COMMIT_HASH: 8e21bdbc40711a3fccd18fbf17b742348b0f4281
- UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-mac-arm64"
- RELEASE_MESSAGE: "../GitHubReleaseMessage.txt"
- ARTDIR: $(Build.ArtifactStagingDirectory)
- QT_VER: '6.7.3'
- QT_VER_MAIN: '6'
- LLVM_COMPILER_VER: '19'
-
- pool:
- vmImage: "macOS-14"
-
- steps:
- - task: Cache@2
- inputs:
- key: ccache | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(Build.SourceVersion)"
- path: $(CCACHE_DIR)
- restoreKeys: |
- ccache | "$(Agent.OS)" | "$(Agent.OSArchitecture)"
- displayName: Ccache cache
-
- - task: Cache@2
- inputs:
- key: qt | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(QT_VER)"
- path: /tmp/Qt
- restoreKeys: |
- qt | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(QT_VER)"
- displayName: Qt cache
-
- # - task: Cache@2
- # inputs:
- # key: brew | "$(Agent.OS)"
- # path: /Users/runner/Library/Caches/Homebrew
- # restoreKeys: |
- # brew | "$(Agent.OS)"
- # displayName: Homebrew cache
-
- - bash: |
- chmod +x ".ci/build-mac-arm64.sh"
- chmod +x ".ci/deploy-mac-arm64.sh"
- chmod +x ".ci/optimize-mac.sh"
- ".ci/build-mac-arm64.sh"
- displayName: Build macOS (arm64)
-
- - publish: $(Build.ArtifactStagingDirectory)
- condition: succeeded()
- artifact: RPCS3 for Mac (Apple Silicon)
-
- - bash: |
- source './.ci/export-cirrus-vars.sh'
- .ci/github-upload.sh
- condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.Repository.Name'], 'RPCS3/rpcs3'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
- displayName: Push build to GitHub
- env:
- RPCS3_TOKEN: $(RPCS3-Token)
diff --git a/buildfiles/cmake/TCDarwinARM64.cmake b/buildfiles/cmake/TCDarwinARM64.cmake
deleted file mode 100644
index d38b237910..0000000000
--- a/buildfiles/cmake/TCDarwinARM64.cmake
+++ /dev/null
@@ -1,2 +0,0 @@
-set(CMAKE_SYSTEM_NAME Darwin)
-set(CMAKE_SYSTEM_PROCESSOR arm64)
diff --git a/rpcs3/rpcs3.vcxproj b/rpcs3/rpcs3.vcxproj
index 50ff807e12..863904af22 100644
--- a/rpcs3/rpcs3.vcxproj
+++ b/rpcs3/rpcs3.vcxproj
@@ -2130,7 +2130,6 @@
-
@@ -2138,7 +2137,6 @@
-
diff --git a/rpcs3/rpcs3.vcxproj.filters b/rpcs3/rpcs3.vcxproj.filters
index 2e344fa2ca..da1b92047d 100644
--- a/rpcs3/rpcs3.vcxproj.filters
+++ b/rpcs3/rpcs3.vcxproj.filters
@@ -1809,9 +1809,6 @@
CI
-
- CI
-
CI
@@ -1830,9 +1827,6 @@
CI
-
- CI
-
CI