From cd7c9a8da4029c4142680165ae49137e4d3f00c4 Mon Sep 17 00:00:00 2001 From: schm1dtmac Date: Thu, 29 May 2025 14:12:38 +0100 Subject: [PATCH] Move Mac builds to GH Actions --- .ci/build-mac-arm64.sh | 92 +++------- .ci/build-mac.sh | 28 +-- .ci/deploy-mac-arm64.sh | 12 +- .ci/deploy-mac.sh | 0 .ci/export-cirrus-vars.sh | 0 .ci/get_keys-windows.sh | 0 .ci/optimize-mac.sh | 0 .github/workflows/rpcs3.yml | 77 ++++++++ README.md | 1 - azure-pipelines.yml | 260 --------------------------- buildfiles/cmake/TCDarwinARM64.cmake | 2 - rpcs3/rpcs3.vcxproj | 2 - rpcs3/rpcs3.vcxproj.filters | 6 - 13 files changed, 122 insertions(+), 358 deletions(-) mode change 100644 => 100755 .ci/build-mac-arm64.sh mode change 100644 => 100755 .ci/build-mac.sh mode change 100644 => 100755 .ci/deploy-mac-arm64.sh mode change 100644 => 100755 .ci/deploy-mac.sh mode change 100644 => 100755 .ci/export-cirrus-vars.sh mode change 100644 => 100755 .ci/get_keys-windows.sh mode change 100644 => 100755 .ci/optimize-mac.sh delete mode 100644 azure-pipelines.yml delete mode 100644 buildfiles/cmake/TCDarwinARM64.cmake 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 ===== -[![Azure Build Status](https://dev.azure.com/nekotekina/nekotekina/_apis/build/status/RPCS3.rpcs3?branchName=master)](https://dev.azure.com/nekotekina/nekotekina/_build?definitionId=8&_a=summary&repositoryFilter=4) [![Cirrus CI - Base Branch Build Status](https://img.shields.io/cirrus/github/RPCS3/rpcs3/master?label=Cirrus%20CI&logo=cirrus-ci)](https://cirrus-ci.com/github/RPCS3/rpcs3) [![GitHub Actions](https://img.shields.io/github/actions/workflow/status/RPCS3/rpcs3/rpcs3.yml?branch=master&logo=github&label=Actions)](https://github.com/RPCS3/rpcs3/actions/workflows/rpcs3.yml) [![RPCS3 Discord Server](https://img.shields.io/discord/272035812277878785?color=5865F2&label=RPCS3%20Discord&logo=discord&logoColor=white)](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