From f71a979109580bd308129652982734f24bdb3f68 Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 22:09:50 -0400 Subject: [PATCH] [ci] add macos scripts Signed-off-by: crueter --- .ci/macos/build.sh | 29 +++++++++++++++++++++++++++++ .ci/macos/package.sh | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100755 .ci/macos/build.sh create mode 100755 .ci/macos/package.sh diff --git a/.ci/macos/build.sh b/.ci/macos/build.sh new file mode 100755 index 0000000000..0405194a6f --- /dev/null +++ b/.ci/macos/build.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +export LIBVULKAN_PATH="/opt/homebrew/lib/libvulkan.1.dylib" + +if [ -z "$BUILD_TYPE" ]; then + export BUILD_TYPE="Release" +fi + +if [ "$DEVEL" != "true" ]; then + export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DENABLE_QT_UPDATE_CHECKER=ON) +fi + +mkdir -p build +cd build + +cmake .. -GNinja \ + -DYUZU_TESTS=OFF \ + -DYUZU_USE_BUNDLED_QT=OFF \ + -DENABLE_QT_TRANSLATION=ON \ + -DYUZU_ENABLE_LTO=ON \ + -DUSE_DISCORD_PRESENCE=ON \ + -DYUZU_CMD=OFF \ + -DYUZU_ROOM_STANDALONE=OFF \ + -DCMAKE_CXX_FLAGS="-w" \ + -DCMAKE_BUILD_TYPE="$BUILD_TYPE" \ + -DYUZU_USE_PRECOMPILED_HEADERS=OFF \ + "${EXTRA_CMAKE_FLAGS[@]}" + +ninja diff --git a/.ci/macos/package.sh b/.ci/macos/package.sh new file mode 100755 index 0000000000..2effd07f6d --- /dev/null +++ b/.ci/macos/package.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +# credit: escary and hauntek + +cd build +APP=./bin/eden.app + +macdeployqt "$APP" +macdeployqt "$APP" -always-overwrite + +# FixMachOLibraryPaths +find "$APP/Contents/Frameworks" ""$APP/Contents/MacOS"" -type f \( -name "*.dylib" -o -perm +111 \) | while read file; do + if file "$file" | grep -q "Mach-O"; then + otool -L "$file" | awk '/@rpath\// {print $1}' | while read lib; do + lib_name="${lib##*/}" + new_path="@executable_path/../Frameworks/$lib_name" + install_name_tool -change "$lib" "$new_path" "$file" + done + + if [[ "$file" == *.dylib ]]; then + lib_name="${file##*/}" + new_id="@executable_path/../Frameworks/$lib_name" + install_name_tool -id "$new_id" "$file" + fi + fi +done +codesign --deep --force --verify --verbose --sign - "$APP" + +ZIP_NAME="eden-macos.zip" +mkdir -p artifacts + +mv $APP . +7z a -tzip "$ZIP_NAME" eden.app +mv "$ZIP_NAME" artifacts/ +mv artifacts ../../