mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-16 23:17:29 +00:00
macOS CI
This commit is contained in:
parent
81c2fb508b
commit
7c39c1de9b
@ -1,27 +1,69 @@
|
|||||||
#!/bin/sh -ex
|
#!/bin/sh -ex
|
||||||
|
|
||||||
export CCACHE_SLOPPINESS=pch_defines,time_macros
|
brew update
|
||||||
export CMAKE_PREFIX_PATH=/usr/local/opt/qt5/
|
brew install llvm@13 molten-vk vulkan-headers sdl2 nasm qt@5 ninja cmake glew git p7zip create-dmg ccache
|
||||||
export PATH="/usr/local/opt/ccache/libexec:$PATH"
|
|
||||||
|
|
||||||
# Setup vulkan and gfx-rs/portability
|
export CXX=clang++
|
||||||
curl -sLO https://github.com/gfx-rs/portability/releases/download/latest/gfx-portability-macos-latest.zip
|
export CC=clang
|
||||||
unzip -: gfx-portability-macos-latest.zip
|
export Qt5_DIR="/usr/local/Cellar/qt@5/5.15.2_1/lib/cmake/Qt5"
|
||||||
curl -sLO https://github.com/KhronosGroup/Vulkan-Headers/archive/sdk-1.1.106.0.zip
|
export PATH="/usr/local/opt/llvm/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin"
|
||||||
unzip -: sdk-*.zip
|
export LDFLAGS="-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib"
|
||||||
mkdir vulkan-sdk
|
export CPPFLAGS="-I/usr/local/opt/llvm/include -msse -msse2 -mcx16 -no-pie"
|
||||||
ln -s "${PWD}"/Vulkan-Headers*/include vulkan-sdk/include
|
export CXXFLAGS="-I/usr/local/opt/llvm/include -msse -msse2 -mcx16 -no-pie"
|
||||||
mkdir vulkan-sdk/lib
|
export VULKAN_SDK="/usr/local/Cellar/molten-vk/1.1.6"
|
||||||
cp target/release/libportability.dylib vulkan-sdk/lib/libVulkan.dylib
|
export VK_ICD_FILENAMES="$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json"
|
||||||
# Let macdeployqt locate and install Vulkan library
|
|
||||||
install_name_tool -id "${PWD}"/vulkan-sdk/lib/libVulkan.dylib vulkan-sdk/lib/libVulkan.dylib
|
|
||||||
export VULKAN_SDK="${PWD}/vulkan-sdk"
|
|
||||||
|
|
||||||
# Pull all the submodules except llvm
|
git submodule update --init --recursive --depth 1
|
||||||
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
|
||||||
# shellcheck disable=SC2046
|
|
||||||
git submodule -q update --init $(awk '/path/ && !/llvm/ { print $3 }' .gitmodules)
|
|
||||||
|
|
||||||
|
# 3rdparty fixes
|
||||||
|
ln -s "$VULKAN_SDK/lib/libMoltenVK.dylib" "$VULKAN_SDK/lib/libvulkan.dylib"
|
||||||
|
sed -i '' "s/if(APPLE)/if(CMAKE_C_COMPILER_ID MATCHES \"AppleClang\")/g" 3rdparty/wolfssl/wolfssl/CMakeLists.txt
|
||||||
|
sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVersionNumber = 1343;/g" 3rdparty/hidapi/hidapi/mac/hid.c
|
||||||
|
|
||||||
|
cd ..
|
||||||
mkdir build && cd build || exit 1
|
mkdir build && cd build || exit 1
|
||||||
cmake .. -DWITH_LLVM=OFF -DUSE_NATIVE_INSTRUCTIONS=OFF -G Ninja
|
cmake -DUSE_DISCORD_RPC=OFF -DUSE_VULKAN=ON -DUSE_ALSA=OFF -DUSE_PULSE=OFF -DUSE_AUDIOUNIT=ON \
|
||||||
|
-G Ninja -DLLVM_CCACHE_BUILD=OFF -DLLVM_TARGETS_TO_BUILD="X86" -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 \
|
||||||
|
-DCMAKE_CXX_STANDARD=20 -DUSE_NATIVE_INSTRUCTIONS=OFF \
|
||||||
|
../cirrus-ci-build/
|
||||||
ninja
|
ninja
|
||||||
|
|
||||||
|
cd ../cirrus-ci-build/
|
||||||
|
COMM_TAG="$(grep 'version{.*}' rpcs3/rpcs3_version.cpp | awk -F[\{,] '{printf "%d.%d.%d", $2, $3, $4}')"
|
||||||
|
COMM_COUNT="$(git rev-list --count HEAD)"
|
||||||
|
COMM_HASH="$(git rev-parse --short=8 HEAD)"
|
||||||
|
cd ../build/bin
|
||||||
|
|
||||||
|
mkdir "rpcs3.app/Contents/lib/"
|
||||||
|
cp "/usr/local/Cellar/llvm/13.0.0_2/lib/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" \
|
||||||
|
"rpcs3.app/Contents/Frameworks/QtQuick.framework" \
|
||||||
|
"rpcs3.app/Contents/Frameworks/QtVirtualKeyboard.framework" \
|
||||||
|
"rpcs3.app/Contents/Plugins/platforminputcontexts" \
|
||||||
|
"rpcs3.app/Contents/Plugins/virtualkeyboard"
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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 \
|
||||||
|
"$ARTDIR/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos.dmg" \
|
||||||
|
RPCS3.app
|
||||||
|
|
||||||
|
7z a -mx9 rpcs3-v"${COMM_TAG}"-"${COMM_COUNT}"-"${COMM_HASH}"_macos.7z RPCS3.app
|
||||||
|
mv rpcs3-v"${COMM_TAG}"-"${COMM_COUNT}"-"${COMM_HASH}"_macos.7z "$ARTDIR"
|
||||||
|
20
.cirrus.yml
20
.cirrus.yml
@ -111,3 +111,23 @@ freebsd_task:
|
|||||||
folder: /tmp/ccache_dir
|
folder: /tmp/ccache_dir
|
||||||
install_script: "sh -ex ./.ci/install-freebsd.sh"
|
install_script: "sh -ex ./.ci/install-freebsd.sh"
|
||||||
script: "./.ci/build-freebsd.sh"
|
script: "./.ci/build-freebsd.sh"
|
||||||
|
|
||||||
|
macos_task:
|
||||||
|
timeout_in: 120m
|
||||||
|
ccache_cache:
|
||||||
|
folder: /tmp/ccache_dir
|
||||||
|
matrix:
|
||||||
|
- name: Cirrus macOS
|
||||||
|
osx_instance:
|
||||||
|
image: big-sur-base
|
||||||
|
mac_script:
|
||||||
|
- mkdir artifacts
|
||||||
|
- ".ci/build-mac.sh"
|
||||||
|
env:
|
||||||
|
ARTDIR: ${CIRRUS_WORKING_DIR}/artifacts/
|
||||||
|
CCACHE_DIR: "/tmp/ccache_dir"
|
||||||
|
CCACHE_MAXSIZE: 300M
|
||||||
|
CI_HAS_ARTIFACTS: true
|
||||||
|
artifacts:
|
||||||
|
name: Artifact
|
||||||
|
path: "artifacts/rpcs3-*_macos.*"
|
||||||
|
Loading…
Reference in New Issue
Block a user