diff options
author | Nadia Holmquist Pedersen <nadia@nhp.sh> | 2021-04-25 03:51:04 +0200 |
---|---|---|
committer | Nadia Holmquist Pedersen <nadia@nhp.sh> | 2021-04-25 03:51:04 +0200 |
commit | bc4a156a4d467e219ecd880206d5174238638770 (patch) | |
tree | 62724cfcb8b7093656451c0c16c1ab6336b4f96a /tools | |
parent | e0cb9985914f832f3c04509b67e1f813477899c7 (diff) |
More 10.14 fixes also make the version check in cmakelists actually work
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/mac-libs.rb | 7 | ||||
-rwxr-xr-x | tools/mac-libs.sh | 113 |
2 files changed, 2 insertions, 118 deletions
diff --git a/tools/mac-libs.rb b/tools/mac-libs.rb index 1a379f9..d8ddcab 100755 --- a/tools/mac-libs.rb +++ b/tools/mac-libs.rb @@ -47,9 +47,9 @@ def expand_load_path(lib, path) get_rpaths(lib).each do |rpath| file = File.join(rpath, file_name) return file, :rpath if File.exist? file - if rpath.match? /^@executable_path(.*)/ + if rpath.match(/^@executable_path(.*)/) != nil relative = rpath.sub(/^@executable_path/, "") - return "#{$bundle}/Contents/MacOS#{relative}", :executable_path + return "#{$bundle}/Contents/MacOS#{relative}/#{file_name}", :executable_path end end file = $fallback_rpaths @@ -69,9 +69,6 @@ def expand_load_path(lib, path) return File.absolute_path(path), :absolute end - puts lib - puts path - exit return nil end diff --git a/tools/mac-libs.sh b/tools/mac-libs.sh deleted file mode 100755 index 1e733ab..0000000 --- a/tools/mac-libs.sh +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/bash - - -set -o errexit -set -o pipefail - -build_dmg=0 -app=melonDS.app - -if [[ "$1" == "--dmg" ]]; then - build_dmg=1 - shift -fi - -if [[ ! -d "$1" ]]; then - echo "Usage: $0 [--dmg] <build-dir>" - exit 1 -fi - -cd "$1" - -# macOS does not have the -f flag for readlink -abspath() { - perl -MCwd -le 'print Cwd::abs_path shift' "$1" -} - -cmake_qtdir=$(grep -E "Qt._DIR" CMakeCache.txt) -qtdir="$(abspath "$(echo "$cmake_qtdir/../../.." | cut -d= -f2)")" - -plugindir="$app/Contents/PlugIns" -if [[ ! -d "$plugindir" ]]; then - qt_plugins="$qtdir/plugins" - if [[ ! -d "$qt_plugins" ]]; then - qt_plugins="$qtdir/share/qt/plugins" - fi - if [[ ! -d "$qt_plugins" ]]; then - qt_major="$(echo "$cmake_qtdir" | sed -E 's/Qt(.)_DIR.*/\1/')" - qt_plugins="$qtdir/libexec/qt$qt_major/plugins" - fi - - mkdir -p "$plugindir/styles" "$plugindir/platforms" - cp "$qt_plugins/styles/libqmacstyle.dylib" "$plugindir/styles/" - cp "$qt_plugins/platforms/libqcocoa.dylib" "$plugindir/platforms/" -fi - -fixup_libs() { - local libs=($(otool -L "$1" | grep -vE "/System|/usr/lib|:$|@rpath|@loader_path|@executable_path" | sed -E 's/'$'\t''(.*) \(.*$/\1/')) - - for lib in "${libs[@]}"; do - if [[ "$lib" != *"/"* ]]; then - continue - fi - - # Dereference symlinks to get the actual .dylib as binaries' load - # commands can contain paths to symlinked libraries. - local abslib="$(abspath "$lib")" - - if [[ "$abslib" == *".framework/"* ]]; then - local fwpath="$(echo "$abslib" | sed -E 's@(.*\.framework)/.*@\1/@')" - local fwlib="$(echo "$abslib" | sed -E 's/.*\.framework//')" - local fwname="$(basename "$fwpath")" - local install_path="$app/Contents/Frameworks/$fwname" - - install_name_tool -change "$lib" "@rpath/$fwname/$fwlib" "$1" - - if [[ ! -d "$install_path" ]]; then - cp -a "$fwpath" "$install_path" - find -H "$install_path" "(" -type d -or -type l ")" -name Headers -exec rm -rf "{}" + - chown -R $UID "$install_path" - chmod -R u+w "$install_path" - strip -SNTx "$install_path/$fwlib" - fixup_libs "$install_path/$fwlib" - fi - else - local base="$(basename "$abslib")" - local install_path="$app/Contents/Frameworks/$base" - - install_name_tool -change "$lib" "@rpath/$base" "$1" - - if [[ ! -f "$install_path" ]]; then - install -m644 "$abslib" "$install_path" - strip -SNTx "$install_path" - fixup_libs "$install_path" - fi - fi - done -} - -if [[ ! -d "$app/Contents/Frameworks" ]]; then - mkdir -p "$app/Contents/Frameworks" - install_name_tool -add_rpath "@executable_path/../Frameworks" "$app/Contents/MacOS/melonDS" -fi - -fixup_libs "$app/Contents/MacOS/melonDS" -find "$app/Contents/PlugIns" -name '*.dylib' | while read lib; do - fixup_libs "$lib" -done - -bad_rpaths=($(otool -l "$app/Contents/MacOS/melonDS" | grep -E "^ *path (/usr/local|/opt)" | sed -E 's/^ *path (.*) \(.*/\1/' || true)) - -for path in "${bad_rpaths[@]}"; do - install_name_tool -delete_rpath "$path" "$app/Contents/MacOS/melonDS" -done - -codesign -s - --deep -f "$app" - -if [[ $build_dmg == 1 ]]; then - mkdir dmg - cp -a "$app" dmg/ - ln -s /Applications dmg/Applications - hdiutil create -fs HFS+ -volname melonDS -srcfolder dmg -ov -format UDBZ melonDS.dmg - rm -r dmg -fi |