From 53cc067c174a67556f0c0752aa93f8eca5252a5b Mon Sep 17 00:00:00 2001 From: nastys <7950891+nastys@users.noreply.github.com> Date: Sat, 21 Jan 2023 21:21:41 +0100 Subject: [PATCH] macOS CI: move to AArch64 VM (x64 builds) (#13155) --- .ci/build-mac.sh | 52 ++++++++++++++++++++++++++++++++++---------- .ci/deploy-mac.sh | 8 ++++--- .cirrus.yml | 10 +++++---- rpcs3/rpcs3.plist.in | 2 +- 4 files changed, 53 insertions(+), 19 deletions(-) diff --git a/.ci/build-mac.sh b/.ci/build-mac.sh index 7325f5b89d..2a33e99d64 100755 --- a/.ci/build-mac.sh +++ b/.ci/build-mac.sh @@ -1,15 +1,43 @@ #!/bin/sh -ex -brew update -brew install llvm@13 sdl2 nasm qt@5 ninja cmake glew git p7zip create-dmg ccache +brew install -f --overwrite llvm@14 nasm ninja git p7zip create-dmg ccache -export MACOSX_DEPLOYMENT_TARGET=11.6 +#/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/homebrew/bin/brew install -f --overwrite llvm@14 sdl2 glew cmake + +#export MACOSX_DEPLOYMENT_TARGET=12.0 export CXX=clang++ export CC=clang -export Qt5_DIR="/usr/local/opt/qt@5/lib/cmake/Qt5" -export PATH="/usr/local/opt/llvm@13/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin" -export LDFLAGS="-L/usr/local/opt/llvm@13/lib -Wl,-rpath,/usr/local/opt/llvm@13/lib" -export CPPFLAGS="-I/usr/local/opt/llvm@13/include -msse -msse2 -mcx16 -no-pie" + +export BREW_PATH; +BREW_PATH="$(brew --prefix)" +export BREW_X64_PATH; +BREW_X64_PATH="$("/usr/local/homebrew/bin/brew" --prefix)" +export BREW_BIN="/usr/local/bin" +export BREW_SBIN="/usr/local/sbin" +export CMAKE_EXTRA_OPTS='-DLLVM_TARGETS_TO_BUILD=X86' + +export WORKDIR; +WORKDIR="$(pwd)" + +#get Qt +git clone https://github.com/engnr/qt-downloader.git +cd qt-downloader +git checkout f52efee0f18668c6d6de2dec0234b8c4bc54c597 +pip3 install pipenv +pipenv run pip3 install py7zr requests semantic_version lxml +pipenv run ./qt-downloader macos desktop 5.15.2 clang_64 --opensource +cd .. + +export Qt5_DIR="$WORKDIR/qt-downloader/5.15.2/clang_64/lib/cmake/Qt5" +export SDL2_DIR="$BREW_X64_PATH/opt/sdl2/lib/cmake/SDL2" + +export PATH="$BREW_PATH/opt/llvm@14/bin:$WORKDIR/qt-downloader/5.15.2/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" +export LD_LIBRARY_PATH="$BREW_X64_PATH/lib" git submodule update --init --recursive --depth 1 @@ -18,16 +46,18 @@ sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVer mkdir build && cd build || exit 1 -cmake .. \ +"$BREW_X64_PATH/bin/cmake" .. \ -DUSE_SDL=ON -DUSE_DISCORD_RPC=OFF -DUSE_VULKAN=ON -DUSE_ALSA=OFF -DUSE_PULSE=OFF -DUSE_AUDIOUNIT=ON \ - -DLLVM_CCACHE_BUILD=OFF -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF \ + -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=OFF \ + $CMAKE_EXTRA_OPTS \ + -DLLVM_TARGET_ARCH=X86_64 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_IGNORE_PATH="$BREW_PATH/lib" \ -G Ninja -ninja; build_status=$?; +"$BREW_PATH/bin/ninja"; build_status=$?; cd .. @@ -36,4 +66,4 @@ cd .. if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then .ci/deploy-mac.sh -fi \ No newline at end of file +fi diff --git a/.ci/deploy-mac.sh b/.ci/deploy-mac.sh index b93dbe2972..bec1b765c0 100755 --- a/.ci/deploy-mac.sh +++ b/.ci/deploy-mac.sh @@ -14,7 +14,9 @@ echo "AVVER=$AVVER" >> ../.ci/ci-vars.env cd bin mkdir "rpcs3.app/Contents/lib/" -cp "/usr/local/opt/llvm@13/lib/c++/libc++abi.1.0.dylib" "rpcs3.app/Contents/lib/libc++abi.1.dylib" + +cp "/usr/local/Homebrew/opt/llvm@14/lib/c++/libc++abi.1.0.dylib" "rpcs3.app/Contents/lib/libc++abi.1.dylib" + rm -rf "rpcs3.app/Contents/Frameworks/QtPdf.framework" \ "rpcs3.app/Contents/Frameworks/QtQml.framework" \ "rpcs3.app/Contents/Frameworks/QtQmlModels.framework" \ @@ -33,7 +35,7 @@ echo "IconIndex=0" >> Quickstart.url DMG_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos.dmg" -create-dmg --volname RPCS3 \ +/opt/homebrew/bin/create-dmg --volname RPCS3 \ --window-size 800 400 \ --icon-size 100 \ --icon rpcs3.app 200 190 \ @@ -45,7 +47,7 @@ create-dmg --volname RPCS3 \ "$DMG_FILEPATH" \ RPCS3.app -7z a -mx9 rpcs3-v"${COMM_TAG}"-"${COMM_COUNT}"-"${COMM_HASH}"_macos.7z RPCS3.app +/opt/homebrew/bin/7z a -mx9 rpcs3-v"${COMM_TAG}"-"${COMM_COUNT}"-"${COMM_HASH}"_macos.7z RPCS3.app FILESIZE=$(stat -f %z "$DMG_FILEPATH") SHA256SUM=$(shasum -a 256 "$DMG_FILEPATH" | awk '{ print $1 }') diff --git a/.cirrus.yml b/.cirrus.yml index aa00df6645..596db3f445 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -120,15 +120,17 @@ freebsd_task: script: "./.ci/build-freebsd.sh" macos_task: - timeout_in: 120m + timeout_in: 12000m ccache_cache: folder: /tmp/ccache_dir matrix: - name: Cirrus macOS - osx_instance: - image: monterey-xcode-13.3 + macos_instance: + image: ghcr.io/cirruslabs/macos-monterey-xcode:14 mac_script: - mkdir artifacts + - chmod +x ".ci/build-mac.sh" + - chmod +x ".ci/deploy-mac.sh" - ".ci/build-mac.sh" env: BUILD_ARTIFACTSTAGINGDIRECTORY: ${CIRRUS_WORKING_DIR}/artifacts @@ -141,7 +143,7 @@ macos_task: RELEASE_MESSAGE: "../GitHubReleaseMessage.txt" artifacts: name: Artifact - path: "artifacts/rpcs3-*_macos.*" + path: "artifacts/*" push_script: | if [ "$CIRRUS_REPO_OWNER" = "RPCS3" ] && [ -z "$CIRRUS_PR" ] && [ "$CIRRUS_BRANCH" = "master" ]; then source './.ci/export-cirrus-vars.sh' diff --git a/rpcs3/rpcs3.plist.in b/rpcs3/rpcs3.plist.in index 41ce92139a..2f91a5e285 100644 --- a/rpcs3/rpcs3.plist.in +++ b/rpcs3/rpcs3.plist.in @@ -29,7 +29,7 @@ LSApplicationCategoryType public.app-category.games LSMinimumSystemVersion - 11.6 + 12.0 NSCameraUsageDescription The camera will be used for PlayStation Eye emulation NSMicrophoneUsageDescription