From f583740522d64d593a627b66d66cb0c872006206 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Mon, 2 Sep 2024 22:37:04 +0300 Subject: [PATCH 01/16] Bump LLVM to 18.1.8 --- 3rdparty/llvm/CMakeLists.txt | 2 +- 3rdparty/llvm/llvm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/3rdparty/llvm/CMakeLists.txt b/3rdparty/llvm/CMakeLists.txt index ed28aa576f33..7a73e0fb57e8 100644 --- a/3rdparty/llvm/CMakeLists.txt +++ b/3rdparty/llvm/CMakeLists.txt @@ -63,7 +63,7 @@ if(WITH_LLVM) if (STATIC_LINK_LLVM) if (NOT DEFINED LLVM_TARGETS_TO_BUILD) if(COMPILER_ARM) - set(LLVM_TARGETS_TO_BUILD "AArch64;X86" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".") + set(LLVM_TARGETS_TO_BUILD "AArch64" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".") else() set(LLVM_TARGETS_TO_BUILD "X86" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".") endif() diff --git a/3rdparty/llvm/llvm b/3rdparty/llvm/llvm index cd89023f7979..3b5b5c1ec4a3 160000 --- a/3rdparty/llvm/llvm +++ b/3rdparty/llvm/llvm @@ -1 +1 @@ -Subproject commit cd89023f797900e4492da58b7bed36f702120011 +Subproject commit 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff From f70dcceb532022b7577d6c486c843e6be90da878 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Mon, 2 Sep 2024 22:55:20 +0300 Subject: [PATCH 02/16] Use focal-1.8 docker image for linux --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2b1526a515c0..7072613a142f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -38,13 +38,13 @@ jobs: displayName: ccache - bash: | - docker pull --quiet rpcs3/rpcs3-ci-focal:1.7 + docker pull --quiet rpcs3/rpcs3-ci-focal:1.8 docker run \ -v $(pwd):/rpcs3 \ --env-file .ci/docker.env \ -v $CCACHE_DIR:/root/.ccache \ -v $BUILD_ARTIFACTSTAGINGDIRECTORY:/root/artifacts \ - rpcs3/rpcs3-ci-focal:1.7 \ + rpcs3/rpcs3-ci-focal:1.8 \ /rpcs3/.ci/build-linux.sh displayName: Docker setup and build From 870fb1ea8592bf0423d2f9c37371a379d2bc0bd4 Mon Sep 17 00:00:00 2001 From: nastys Date: Tue, 10 Sep 2024 00:56:07 +0200 Subject: [PATCH 03/16] macOS CI: Apple Silicon builds --- .ci/build-mac-arm64.sh | 134 +++++++++++++++++++++++++++ .ci/deploy-mac-arm64.sh | 62 +++++++++++++ azure-pipelines.yml | 59 ++++++++++++ buildfiles/cmake/TCDarwinARM64.cmake | 2 + 4 files changed, 257 insertions(+) create mode 100755 .ci/build-mac-arm64.sh create mode 100755 .ci/deploy-mac-arm64.sh create mode 100644 buildfiles/cmake/TCDarwinARM64.cmake diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh new file mode 100755 index 000000000000..bd856f48977a --- /dev/null +++ b/.ci/build-mac-arm64.sh @@ -0,0 +1,134 @@ +#!/bin/sh -ex + +brew_arm64_install_packages() { + for pkg in "$@"; do + echo "Fetching bottle for $pkg..." + "$BREW_ARM64_PATH/bin/brew" fetch --force --bottle-tag=arm64_monterey "$pkg" + if [ $? -ne 0 ]; then + echo "Failed to fetch bottle for $pkg" + return 1 + fi + + echo "Installing $pkg..." + "$BREW_ARM64_PATH/bin/brew" install --ignore-dependencies $("$BREW_ARM64_PATH/bin/brew" --cache --bottle-tag=arm64_monterey "$pkg") || true + done +} + +export HOMEBREW_NO_AUTO_UPDATE=1 +export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 +export HOMEBREW_NO_INSTALL_CLEANUP=1 +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_install_packages 0mq aom aribb24 ca-certificates cjson curl 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@18 mbedtls molten-vk nettle opencore-amr openjpeg openssl opus p11-kit pkg-config pkgconfig pzstd rav1e sdl2 snappy speex srt svt-av1 theora vulkan-headers webp x264 x265 xz z3 zeromq zmq zstd + +/usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg +/usr/local/bin/brew install llvm@18 cmake +/usr/local/bin/brew link -f llvm@18 + +# moltenvk based on commit for 1.2.10 release +wget https://raw.githubusercontent.com/Homebrew/homebrew-core/0d9f25fbd1658e975d00bd0e8cccd20a0c2cb74b/Formula/m/molten-vk.rb +/usr/local/bin/brew install -f --overwrite ./molten-vk.rb +#export MACOSX_DEPLOYMENT_TARGET=12.0 +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 CMAKE_EXTRA_OPTS='-DLLVM_TARGETS_TO_BUILD=arm64' + +export WORKDIR; +WORKDIR="$(pwd)" + +# Get Qt +if [ ! -d "/tmp/Qt/$QT_VER" ]; then + mkdir -p "/tmp/Qt" + git clone https://github.com/engnr/qt-downloader.git + cd qt-downloader + git checkout f52efee0f18668c6d6de2dec0234b8c4bc54c597 + cd "/tmp/Qt" + "$BREW_X64_PATH/bin/pipenv" run pip3 install py7zr requests semantic_version lxml + mkdir -p "$QT_VER/macos" ; ln -s "macos" "$QT_VER/clang_64" + "$BREW_X64_PATH/bin/pipenv" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia +#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 SDL2_DIR="$BREW_ARM64_PATH/opt/sdl2/lib/cmake/SDL2" + +export PATH="$BREW_X64_PATH/opt/llvm@18/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@18/lib/c++/libc++.1.dylib $BREW_ARM64_PATH/lib/libSDL2.dylib /opt/homebrew/lib/libGLEW.dylib $BREW_ARM64_PATH/opt/llvm@18/lib/libunwind.1.dylib -Wl,-rpath,$BREW_ARM64_PATH/lib" +export CPPFLAGS="-I$BREW_ARM64_PATH/include -no-pie" +export LIBRARY_PATH="$BREW_ARM64_PATH/lib" +export LD_LIBRARY_PATH="$BREW_ARM64_PATH/lib" + +export VULKAN_SDK +VULKAN_SDK="$BREW_ARM64_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@18" +# exclude ffmpeg, SPIRV and LLVM, and sdl from submodule update +# shellcheck disable=SC2046 +git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/SPIRV/ && !/SDL/ { print $3 }' .gitmodules) + +# 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 CXXFLAGS="-DSDL_DISABLE_IMMINTRIN_H=1 -DSDL_DISABLE_MMINTRIN_H=1 -DSDL_DISABLE_XMMINTRIN_H=1 -DSDL_DISABLE_EMMINTRIN_H=1 -DSDL_DISABLE_PMMINTRIN_H=1" +export CFLAGS="-DSDL_DISABLE_IMMINTRIN_H=1 -DSDL_DISABLE_MMINTRIN_H=1 -DSDL_DISABLE_XMMINTRIN_H=1 -DSDL_DISABLE_EMMINTRIN_H=1 -DSDL_DISABLE_PMMINTRIN_H=1" +export CMAKE_SYSTEM_PROCESSOR=arm64 + +"$BREW_X64_PATH/bin/cmake" .. \ + -DUSE_SDL=ON \ + -DUSE_DISCORD_RPC=OFF \ + -DUSE_VULKAN=ON \ + -DUSE_ALSA=OFF \ + -DUSE_PULSE=OFF \ + -DUSE_AUDIOUNIT=ON \ + -DUSE_SYSTEM_FFMPEG=ON \ + -DLLVM_CCACHE_BUILD=OFF \ + -DLLVM_BUILD_RUNTIME=OFF \ + -DLLVM_BUILD_TOOLS=OFF \ + -DLLVM_INCLUDE_DOCS=OFF \ + -DLLVM_INCLUDE_EXAMPLES=OFF \ + -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_INCLUDE_TOOLS=OFF \ + -DLLVM_INCLUDE_UTILS=OFF \ + -DLLVM_USE_PERF=OFF \ + -DLLVM_ENABLE_Z3_SOLVER=OFF \ + -DUSE_NATIVE_INSTRUCTIONS=OFF \ + -DUSE_SYSTEM_MVK=ON \ + -DUSE_SYSTEM_FAUDIO=OFF \ + -DUSE_SYSTEM_SDL=ON \ + $CMAKE_EXTRA_OPTS \ + -DLLVM_TARGET_ARCH=arm64 \ + -DCMAKE_OSX_ARCHITECTURES=arm64 \ + -DCMAKE_IGNORE_PATH="$BREW_X64_PATH/lib" \ + -DCMAKE_SYSTEM_PROCESSOR=arm64 \ + -DCMAKE_TOOLCHAIN_FILE=buildfiles/cmake/TCDarwinARM64.cmake \ + -G Ninja + +"$BREW_PATH/bin/ninja"; build_status=$?; + +cd .. + +{ [ "$CI_HAS_ARTIFACTS" = "true" ]; +} && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false" + +if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then + .ci/deploy-mac-arm64.sh +fi diff --git a/.ci/deploy-mac-arm64.sh b/.ci/deploy-mac-arm64.sh new file mode 100755 index 000000000000..e7fb8241f3fc --- /dev/null +++ b/.ci/deploy-mac-arm64.sh @@ -0,0 +1,62 @@ +#!/bin/sh -ex + +cd build || exit 1 + +# Gather explicit version number and number of commits +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) + +AVVER="${COMM_TAG}-${COMM_COUNT}" + +# AVVER is used for GitHub releases, it is the version number. +echo "AVVER=$AVVER" >> ../.ci/ci-vars.env + +cd bin +mkdir "rpcs3.app/Contents/lib/" || true + +cp "$(realpath /opt/homebrew/opt/llvm@18/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" \ +"rpcs3.app/Contents/Frameworks/QtQmlModels.framework" \ +"rpcs3.app/Contents/Frameworks/QtQuick.framework" \ +"rpcs3.app/Contents/Frameworks/QtVirtualKeyboard.framework" \ +"rpcs3.app/Contents/Plugins/platforminputcontexts" \ +"rpcs3.app/Contents/Plugins/virtualkeyboard" \ +"rpcs3.app/Contents/Resources/git" + +# Need to do this rename hack due to case insensitive filesystem +mv rpcs3.app RPCS3_.app +mv RPCS3_.app RPCS3.app + +echo "[InternetShortcut]" > Quickstart.url +echo "URL=https://rpcs3.net/quickstart" >> Quickstart.url +echo "IconIndex=0" >> Quickstart.url + +#DMG_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos_arm64.dmg" +#"$BREW_X64_PATH/bin/create-dmg" --volname RPCS3 \ +#--window-size 800 400 \ +#--icon-size 100 \ +#--icon rpcs3.app 200 190 \ +#--add-file Quickstart.url Quickstart.url 400 20 \ +#--hide-extension rpcs3.app \ +#--hide-extension Quickstart.url \ +#--app-drop-link 600 185 \ +#--skip-jenkins \ +#--format ULMO \ +#"$DMG_FILEPATH" \ +#RPCS3.app +#FILESIZE=$(stat -f %z "$DMG_FILEPATH") +#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 +FILESIZE=$(stat -f %z "$ARCHIVE_FILEPATH") +SHA256SUM=$(shasum -a 256 "$ARCHIVE_FILEPATH" | awk '{ print $1 }') + +cd .. +echo "${SHA256SUM};${FILESIZE}B" > "$RELEASE_MESSAGE" +cd bin diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7072613a142f..7008b5a8567b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -180,3 +180,62 @@ jobs: displayName: Push build to GitHub env: RPCS3_TOKEN: $(RPCS3-Token) + +- job: Mac_Build_AppleSilicon + 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.6.3' + QT_VER_MAIN: '6' + + pool: + vmImage: "macOS-12" + + steps: + - task: Cache@2 + inputs: + key: ccache | "$(Agent.OS)" + path: $(CCACHE_DIR) + restoreKeys: | + ccache | "$(Agent.OS)" + displayName: Ccache cache + + - task: Cache@2 + inputs: + key: qt | "$(Agent.OS)" | "$(QT_VER)" + path: /tmp/Qt + restoreKeys: | + qt | "$(Agent.OS)" | "$(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" + ".ci/build-mac-arm64.sh" + displayName: Build MacOS + + - 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) \ No newline at end of file diff --git a/buildfiles/cmake/TCDarwinARM64.cmake b/buildfiles/cmake/TCDarwinARM64.cmake new file mode 100644 index 000000000000..d38b2379108a --- /dev/null +++ b/buildfiles/cmake/TCDarwinARM64.cmake @@ -0,0 +1,2 @@ +set(CMAKE_SYSTEM_NAME Darwin) +set(CMAKE_SYSTEM_PROCESSOR arm64) From 6b88685ff5ab30d9d9bb4cf6d481c07dfe97db84 Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 01:48:50 +0200 Subject: [PATCH 04/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index bd856f48977a..0c1a9f98d9dc 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -25,6 +25,7 @@ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "$ brew_arm64_install_packages 0mq aom aribb24 ca-certificates cjson curl 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@18 mbedtls molten-vk nettle opencore-amr openjpeg openssl opus p11-kit pkg-config pkgconfig pzstd rav1e sdl2 snappy speex srt svt-av1 theora vulkan-headers webp x264 x265 xz z3 zeromq zmq zstd +/usr/local/bin/brew update /usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg /usr/local/bin/brew install llvm@18 cmake /usr/local/bin/brew link -f llvm@18 From 79c1d844fb5761fce7d0bfd31a598fc3662cfec6 Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 08:49:52 +0200 Subject: [PATCH 05/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index 0c1a9f98d9dc..63546d038bf8 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -17,19 +17,19 @@ brew_arm64_install_packages() { export HOMEBREW_NO_AUTO_UPDATE=1 export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 export HOMEBREW_NO_INSTALL_CLEANUP=1 -export BREW_ARM64_PATH="/opt/homebrew1" +/usr/local/bin/brew update +/usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg +/usr/local/bin/brew install llvm@18 cmake +/usr/local/bin/brew link -f llvm@18 + +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_install_packages 0mq aom aribb24 ca-certificates cjson curl 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@18 mbedtls molten-vk nettle opencore-amr openjpeg openssl opus p11-kit pkg-config pkgconfig pzstd rav1e sdl2 snappy speex srt svt-av1 theora vulkan-headers webp x264 x265 xz z3 zeromq zmq zstd -/usr/local/bin/brew update -/usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg -/usr/local/bin/brew install llvm@18 cmake -/usr/local/bin/brew link -f llvm@18 - # moltenvk based on commit for 1.2.10 release wget https://raw.githubusercontent.com/Homebrew/homebrew-core/0d9f25fbd1658e975d00bd0e8cccd20a0c2cb74b/Formula/m/molten-vk.rb /usr/local/bin/brew install -f --overwrite ./molten-vk.rb From 27bd435fb2785479b5654ab8143dc013053078af Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:25:17 +0200 Subject: [PATCH 06/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index 63546d038bf8..bf7adfc9a39e 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -58,7 +58,7 @@ if [ ! -d "/tmp/Qt/$QT_VER" ]; then "$BREW_X64_PATH/bin/pipenv" run pip3 install py7zr requests semantic_version lxml mkdir -p "$QT_VER/macos" ; ln -s "macos" "$QT_VER/clang_64" "$BREW_X64_PATH/bin/pipenv" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia -#fi +fi cd "$WORKDIR" ditto "/tmp/Qt/$QT_VER" "qt-downloader/$QT_VER" From 2b1c82430ebf1a3a63ce6a80a597155aab09de17 Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:28:20 +0200 Subject: [PATCH 07/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index bf7adfc9a39e..562c903cc8b4 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -67,7 +67,7 @@ export Qt6_DIR="$WORKDIR/qt-downloader/$QT_VER/clang_64/lib/cmake/Qt$QT_VER_MAIN export SDL2_DIR="$BREW_ARM64_PATH/opt/sdl2/lib/cmake/SDL2" export PATH="$BREW_X64_PATH/opt/llvm@18/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@18/lib/c++/libc++.1.dylib $BREW_ARM64_PATH/lib/libSDL2.dylib /opt/homebrew/lib/libGLEW.dylib $BREW_ARM64_PATH/opt/llvm@18/lib/libunwind.1.dylib -Wl,-rpath,$BREW_ARM64_PATH/lib" +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@18/lib/c++/libc++.1.dylib $BREW_ARM64_PATH/lib/libSDL2.dylib $BREW_ARM64_PATH/lib/libGLEW.dylib $BREW_ARM64_PATH/opt/llvm@18/lib/libunwind.1.dylib -Wl,-rpath,$BREW_ARM64_PATH/lib" export CPPFLAGS="-I$BREW_ARM64_PATH/include -no-pie" export LIBRARY_PATH="$BREW_ARM64_PATH/lib" export LD_LIBRARY_PATH="$BREW_ARM64_PATH/lib" From 94aa441ef289ac88537eb999b3d31074cc515bbd Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 11:12:46 +0200 Subject: [PATCH 08/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index 562c903cc8b4..680d58748b68 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -76,6 +76,7 @@ export VULKAN_SDK VULKAN_SDK="$BREW_ARM64_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 Vulkan_INCLUDE_DIR="$BREW_ARM64_PATH/opt/vulkan-headers/include" export LLVM_DIR LLVM_DIR="$BREW_ARM64_PATH/opt/llvm@18" From e4a21029bac1d0c88300c42c9c5c032e4b03cbfa Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 11:41:43 +0200 Subject: [PATCH 09/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index 680d58748b68..ce307fc3cc9d 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -20,7 +20,7 @@ export HOMEBREW_NO_INSTALL_CLEANUP=1 /usr/local/bin/brew update /usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg -/usr/local/bin/brew install llvm@18 cmake +/usr/local/bin/brew install llvm@18 cmake vulkan-headers /usr/local/bin/brew link -f llvm@18 export BREW_ARM64_PATH="/opt/homebrew1" @@ -68,7 +68,7 @@ export SDL2_DIR="$BREW_ARM64_PATH/opt/sdl2/lib/cmake/SDL2" export PATH="$BREW_X64_PATH/opt/llvm@18/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@18/lib/c++/libc++.1.dylib $BREW_ARM64_PATH/lib/libSDL2.dylib $BREW_ARM64_PATH/lib/libGLEW.dylib $BREW_ARM64_PATH/opt/llvm@18/lib/libunwind.1.dylib -Wl,-rpath,$BREW_ARM64_PATH/lib" -export CPPFLAGS="-I$BREW_ARM64_PATH/include -no-pie" +export CPPFLAGS="-I$BREW_ARM64_PATH/include -I$BREW_X64_PATH/include -no-pie" export LIBRARY_PATH="$BREW_ARM64_PATH/lib" export LD_LIBRARY_PATH="$BREW_ARM64_PATH/lib" @@ -76,7 +76,6 @@ export VULKAN_SDK VULKAN_SDK="$BREW_ARM64_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 Vulkan_INCLUDE_DIR="$BREW_ARM64_PATH/opt/vulkan-headers/include" export LLVM_DIR LLVM_DIR="$BREW_ARM64_PATH/opt/llvm@18" From bb0c1c03544c3c21d602fb36849c69003ec207ee Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 12:32:32 +0200 Subject: [PATCH 10/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index ce307fc3cc9d..0563ba96c434 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -29,6 +29,7 @@ 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_install_packages 0mq aom aribb24 ca-certificates cjson curl 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@18 mbedtls molten-vk nettle opencore-amr openjpeg openssl opus p11-kit pkg-config pkgconfig pzstd rav1e sdl2 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 # moltenvk based on commit for 1.2.10 release wget https://raw.githubusercontent.com/Homebrew/homebrew-core/0d9f25fbd1658e975d00bd0e8cccd20a0c2cb74b/Formula/m/molten-vk.rb From 9a0037926c3f42f0f689ca49e0fa3a47430e4448 Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:34:55 +0200 Subject: [PATCH 11/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index 0563ba96c434..8391ff330fc3 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -19,9 +19,11 @@ export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 export HOMEBREW_NO_INSTALL_CLEANUP=1 /usr/local/bin/brew update +/usr/local/bin/brew uninstall -f --ignore-dependencies ffmpeg +/usr/local/bin/brew install -f --build-from-source ffmpeg@5 /usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg /usr/local/bin/brew install llvm@18 cmake vulkan-headers -/usr/local/bin/brew link -f llvm@18 +/usr/local/bin/brew link -f llvm@18 ffmpeg@5 export BREW_ARM64_PATH="/opt/homebrew1" sudo mkdir -p "$BREW_ARM64_PATH" From fc60ae8b8f600db034049f5ed9da7f8f8591bbce Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 15:48:03 +0200 Subject: [PATCH 12/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index 8391ff330fc3..5057fec862f6 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -20,10 +20,10 @@ export HOMEBREW_NO_INSTALL_CLEANUP=1 /usr/local/bin/brew update /usr/local/bin/brew uninstall -f --ignore-dependencies ffmpeg -/usr/local/bin/brew install -f --build-from-source ffmpeg@5 +/usr/local/bin/brew install -f --build-from-source ffmpeg@5 || true /usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg /usr/local/bin/brew install llvm@18 cmake vulkan-headers -/usr/local/bin/brew link -f llvm@18 ffmpeg@5 +/usr/local/bin/brew link -f llvm@18 ffmpeg@5 || true export BREW_ARM64_PATH="/opt/homebrew1" sudo mkdir -p "$BREW_ARM64_PATH" From 6c9c18470a1b34ae0d0b922e6b6c2cf0cdda56a4 Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 16:30:43 +0200 Subject: [PATCH 13/16] Update build-mac-arm64.sh --- .ci/build-mac-arm64.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/build-mac-arm64.sh b/.ci/build-mac-arm64.sh index 5057fec862f6..72de1e97c138 100755 --- a/.ci/build-mac-arm64.sh +++ b/.ci/build-mac-arm64.sh @@ -22,7 +22,7 @@ export HOMEBREW_NO_INSTALL_CLEANUP=1 /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 nasm ninja p7zip ccache pipenv #create-dmg -/usr/local/bin/brew install llvm@18 cmake vulkan-headers +/usr/local/bin/brew install llvm@18 glew cmake sdl2 vulkan-headers coreutils /usr/local/bin/brew link -f llvm@18 ffmpeg@5 || true export BREW_ARM64_PATH="/opt/homebrew1" From b1380c40ef95957950ae31941bc1b7d7df6e2cee Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 17:38:32 +0200 Subject: [PATCH 14/16] Update deploy-mac-arm64.sh --- .ci/deploy-mac-arm64.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.ci/deploy-mac-arm64.sh b/.ci/deploy-mac-arm64.sh index e7fb8241f3fc..5211d1da7ad7 100755 --- a/.ci/deploy-mac-arm64.sh +++ b/.ci/deploy-mac-arm64.sh @@ -15,9 +15,9 @@ echo "AVVER=$AVVER" >> ../.ci/ci-vars.env cd bin mkdir "rpcs3.app/Contents/lib/" || true -cp "$(realpath /opt/homebrew/opt/llvm@18/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" +cp "$(realpath /opt/homebrew1/opt/llvm@18/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" rm -rf "rpcs3.app/Contents/Frameworks/QtPdf.framework" \ "rpcs3.app/Contents/Frameworks/QtQml.framework" \ From 80299852cf2ea777fb0c4a322d9333fd02f5ab4c Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 17:39:30 +0200 Subject: [PATCH 15/16] Update build-mac.sh --- .ci/build-mac.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.ci/build-mac.sh b/.ci/build-mac.sh index 65a35ce949a9..1b2eb041af92 100755 --- a/.ci/build-mac.sh +++ b/.ci/build-mac.sh @@ -12,8 +12,8 @@ arch -x86_64 /usr/local/bin/brew update 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@16 glew cmake sdl2 vulkan-headers coreutils -arch -x86_64 /usr/local/bin/brew link -f llvm@16 ffmpeg@5 +arch -x86_64 /usr/local/bin/brew install llvm@18 glew cmake sdl2 vulkan-headers coreutils +arch -x86_64 /usr/local/bin/brew link -f llvm@18 ffmpeg@5 # moltenvk based on commit for 1.2.10 release wget https://raw.githubusercontent.com/Homebrew/homebrew-core/0d9f25fbd1658e975d00bd0e8cccd20a0c2cb74b/Formula/m/molten-vk.rb @@ -51,7 +51,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 SDL2_DIR="$BREW_X64_PATH/opt/sdl2/lib/cmake/SDL2" -export PATH="$BREW_X64_PATH/opt/llvm@16/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 PATH="$BREW_X64_PATH/opt/llvm@18/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_X64_PATH/lib -Wl,-rpath,$BREW_X64_PATH/lib" export CPPFLAGS="-I$BREW_X64_PATH/include -msse -msse2 -mcx16 -no-pie" export LIBRARY_PATH="$BREW_X64_PATH/lib" @@ -63,7 +63,7 @@ ln -s "$VULKAN_SDK/lib/libMoltenVK.dylib" "$VULKAN_SDK/lib/libvulkan.dylib" export VK_ICD_FILENAMES="$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json" export LLVM_DIR -LLVM_DIR="BREW_X64_PATH/opt/llvm@16" +LLVM_DIR="BREW_X64_PATH/opt/llvm@18" # exclude ffmpeg, SPIRV and LLVM, and sdl from submodule update # shellcheck disable=SC2046 git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/SPIRV/ && !/SDL/ { print $3 }' .gitmodules) From eafe88a17d946f104c4fa886446ebef0350fb163 Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Tue, 10 Sep 2024 17:39:48 +0200 Subject: [PATCH 16/16] Update deploy-mac.sh --- .ci/deploy-mac.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/deploy-mac.sh b/.ci/deploy-mac.sh index 20de7023ea7a..ca7843b3aa5a 100755 --- a/.ci/deploy-mac.sh +++ b/.ci/deploy-mac.sh @@ -15,7 +15,7 @@ echo "AVVER=$AVVER" >> ../.ci/ci-vars.env cd bin mkdir "rpcs3.app/Contents/lib/" -cp "/usr/local/opt/llvm@16/lib/c++/libc++abi.1.0.dylib" "rpcs3.app/Contents/lib/libc++abi.1.dylib" +cp "/usr/local/opt/llvm@18/lib/c++/libc++abi.1.0.dylib" "rpcs3.app/Contents/lib/libc++abi.1.dylib" cp "$(realpath /usr/local/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib" cp "$(realpath /usr/local/lib/libintl.8.dylib)" "rpcs3.app/Contents/lib/libintl.8.dylib"