fix(ci): bundle libssl in macOS app

This commit is contained in:
Paul 2026-04-03 23:09:43 +03:00
parent 8d78976904
commit 0a164cfb6e
2 changed files with 649 additions and 666 deletions

View file

@ -215,6 +215,19 @@ jobs:
exit 1 exit 1
fi fi
# dylibbundler may miss Homebrew's OpenSSL on some runner images.
# Copy libssl and libcrypto so wowee_bin can resolve them at runtime.
OPENSSL_LIB_DIR="$(brew --prefix openssl@3)/lib"
for lib in "${OPENSSL_LIB_DIR}"/libssl*.dylib "${OPENSSL_LIB_DIR}"/libcrypto*.dylib; do
[ -e "${lib}" ] || continue
cp -f "${lib}" Wowee.app/Contents/Frameworks/
done
if ! ls Wowee.app/Contents/Frameworks/libssl*.dylib >/dev/null 2>&1; then
echo "Missing OpenSSL libssl dylib(s) in app bundle Frameworks/" >&2
exit 1
fi
# Info.plist # Info.plist
cat > Wowee.app/Contents/Info.plist << 'EOF' cat > Wowee.app/Contents/Info.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
@ -283,21 +296,7 @@ jobs:
msystem: CLANGARM64 msystem: CLANGARM64
update: true update: true
install: >- install: >-
mingw-w64-clang-aarch64-cmake mingw-w64-clang-aarch64-cmake mingw-w64-clang-aarch64-clang mingw-w64-clang-aarch64-ninja mingw-w64-clang-aarch64-pkgconf mingw-w64-clang-aarch64-SDL2 mingw-w64-clang-aarch64-glew mingw-w64-clang-aarch64-glm mingw-w64-clang-aarch64-openssl mingw-w64-clang-aarch64-zlib mingw-w64-clang-aarch64-ffmpeg mingw-w64-clang-aarch64-unicorn mingw-w64-clang-aarch64-vulkan-loader mingw-w64-clang-aarch64-vulkan-headers mingw-w64-clang-aarch64-shaderc git
mingw-w64-clang-aarch64-clang
mingw-w64-clang-aarch64-ninja
mingw-w64-clang-aarch64-pkgconf
mingw-w64-clang-aarch64-SDL2
mingw-w64-clang-aarch64-glew
mingw-w64-clang-aarch64-glm
mingw-w64-clang-aarch64-openssl
mingw-w64-clang-aarch64-zlib
mingw-w64-clang-aarch64-ffmpeg
mingw-w64-clang-aarch64-unicorn
mingw-w64-clang-aarch64-vulkan-loader
mingw-w64-clang-aarch64-vulkan-headers
mingw-w64-clang-aarch64-shaderc
git
- name: Build StormLib from source - name: Build StormLib from source
shell: msys2 {0} shell: msys2 {0}
@ -377,22 +376,7 @@ jobs:
msystem: MINGW64 msystem: MINGW64
update: false update: false
install: >- install: >-
mingw-w64-x86_64-cmake mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-ninja mingw-w64-x86_64-pkgconf mingw-w64-x86_64-SDL2 mingw-w64-x86_64-glew mingw-w64-x86_64-glm mingw-w64-x86_64-openssl mingw-w64-x86_64-zlib mingw-w64-x86_64-ffmpeg mingw-w64-x86_64-unicorn mingw-w64-x86_64-vulkan-loader mingw-w64-x86_64-vulkan-headers mingw-w64-x86_64-shaderc mingw-w64-x86_64-nsis git
mingw-w64-x86_64-gcc
mingw-w64-x86_64-ninja
mingw-w64-x86_64-pkgconf
mingw-w64-x86_64-SDL2
mingw-w64-x86_64-glew
mingw-w64-x86_64-glm
mingw-w64-x86_64-openssl
mingw-w64-x86_64-zlib
mingw-w64-x86_64-ffmpeg
mingw-w64-x86_64-unicorn
mingw-w64-x86_64-vulkan-loader
mingw-w64-x86_64-vulkan-headers
mingw-w64-x86_64-shaderc
mingw-w64-x86_64-nsis
git
- name: Build StormLib from source - name: Build StormLib from source
shell: msys2 {0} shell: msys2 {0}

View file

@ -197,6 +197,19 @@ jobs:
exit 1 exit 1
fi fi
# dylibbundler may miss Homebrew's OpenSSL on some runner images.
# Copy libssl and libcrypto so wowee_bin can resolve them at runtime.
OPENSSL_LIB_DIR="$(brew --prefix openssl@3)/lib"
for lib in "${OPENSSL_LIB_DIR}"/libssl*.dylib "${OPENSSL_LIB_DIR}"/libcrypto*.dylib; do
[ -e "${lib}" ] || continue
cp -f "${lib}" Wowee.app/Contents/Frameworks/
done
if ! ls Wowee.app/Contents/Frameworks/libssl*.dylib >/dev/null 2>&1; then
echo "Missing OpenSSL libssl dylib(s) in app bundle Frameworks/" >&2
exit 1
fi
# Info.plist # Info.plist
cat > Wowee.app/Contents/Info.plist << EOF cat > Wowee.app/Contents/Info.plist << EOF
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
@ -256,21 +269,7 @@ jobs:
msystem: ${{ matrix.msystem }} msystem: ${{ matrix.msystem }}
update: ${{ matrix.arch == 'arm64' }} update: ${{ matrix.arch == 'arm64' }}
install: >- install: >-
${{ matrix.prefix }}-cmake ${{ matrix.prefix }}-cmake ${{ matrix.arch == 'x86-64' && format('{0}-gcc', matrix.prefix) || format('{0}-clang', matrix.prefix) }} ${{ matrix.prefix }}-ninja ${{ matrix.prefix }}-pkgconf ${{ matrix.prefix }}-SDL2 ${{ matrix.prefix }}-glew ${{ matrix.prefix }}-glm ${{ matrix.prefix }}-openssl ${{ matrix.prefix }}-zlib ${{ matrix.prefix }}-ffmpeg ${{ matrix.prefix }}-unicorn ${{ matrix.prefix }}-vulkan-loader ${{ matrix.prefix }}-vulkan-headers ${{ matrix.prefix }}-shaderc git
${{ matrix.arch == 'x86-64' && format('{0}-gcc', matrix.prefix) || format('{0}-clang', matrix.prefix) }}
${{ matrix.prefix }}-ninja
${{ matrix.prefix }}-pkgconf
${{ matrix.prefix }}-SDL2
${{ matrix.prefix }}-glew
${{ matrix.prefix }}-glm
${{ matrix.prefix }}-openssl
${{ matrix.prefix }}-zlib
${{ matrix.prefix }}-ffmpeg
${{ matrix.prefix }}-unicorn
${{ matrix.prefix }}-vulkan-loader
${{ matrix.prefix }}-vulkan-headers
${{ matrix.prefix }}-shaderc
git
- name: Install optional packages - name: Install optional packages
shell: msys2 {0} shell: msys2 {0}