Browse Source

More tweaks for macos otool patching

tags/v1.0
falkTX 4 years ago
parent
commit
22ed3ba558
2 changed files with 47 additions and 26 deletions
  1. +18
    -25
      build-jack.sh
  2. +29
    -1
      setup/functions.sh

+ 18
- 25
build-jack.sh View File

@@ -208,17 +208,11 @@ if [ ! -e "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc" ]; then
fi
fi

if [ "${MACOS}" -eq 1 ]; then
for f in $(ls "${PAWPAW_PREFIX}/jack2/bin/"); do
patch_osx_binary_libs "${PAWPAW_PREFIX}/jack2/bin/${f}"
done
fi

# ---------------------------------------------------------------------------------------------------------------------
# if qt is available, build qjackctl

if [ -f "${PAWPAW_PREFIX}/bin/moc" ]; then
download qjackctl "${QJACKCTL_VERSION}" https://download.sourceforge.net/qjackctl
download qjackctl ${QJACKCTL_VERSION} https://download.sourceforge.net/qjackctl

if [ "${WIN64}" -eq 1 ]; then
patch_file qjackctl "${QJACKCTL_VERSION}" "configure" 's/-ljack /-Wl,-Bdynamic -ljack64 -Wl,-Bstatic /'
@@ -227,23 +221,6 @@ if [ -f "${PAWPAW_PREFIX}/bin/moc" ]; then
fi

build_autoconf qjackctl "${QJACKCTL_VERSION}" "--enable-jack-version"

if [ "${MACOS}" -eq 1 ]; then
qjackctl_dir="${PAWPAW_PREFIX}/bin/qjackctl.app/Contents/MacOS"
patch_osx_binary_libs "${qjackctl_dir}/qjackctl"
if [ ! -e "${qjackctl_dir}/QtXml" ]; then
cp -v "${PAWPAW_PREFIX}/lib/QtCore.framework/Versions/5/QtCore" "${qjackctl_dir}/"
patch_osx_binary_libs "${qjackctl_dir}/QtCore"
cp -v "${PAWPAW_PREFIX}/lib/QtGui.framework/Versions/5/QtGui" "${qjackctl_dir}/"
patch_osx_binary_libs "${qjackctl_dir}/QtGui"
cp -v "${PAWPAW_PREFIX}/lib/QtWidgets.framework/Versions/5/QtWidgets" "${qjackctl_dir}/"
patch_osx_binary_libs "${qjackctl_dir}/QtWidgets"
cp -v "${PAWPAW_PREFIX}/lib/QtXml.framework/Versions/5/QtXml" "${qjackctl_dir}/"
patch_osx_binary_libs "${qjackctl_dir}/QtXml"
fi
elif [ "${WIN32}" -eq 1 ]; then
copy_file qjackctl "${QJACKCTL_VERSION}" "src/release/qjackctl.exe" "${PAWPAW_PREFIX}/jack2/bin/qjackctl.exe"
fi
fi


@@ -255,12 +232,28 @@ fi

if [ -n "${PACKAGING_BUILD}" ]; then
if [ "${MACOS}" -eq 1 ]; then
for f in $(ls "${PAWPAW_PREFIX}/jack2/bin"/* \
"${PAWPAW_PREFIX}/jack2/lib"/*.dylib \
"${PAWPAW_PREFIX}/jack2/lib/jack"/*); do
patch_osx_binary_libs "${f}"
done

./jack2/macosx/generate-pkg.sh "${PAWPAW_PREFIX}/jack2/"

qjackctl_app="${PAWPAW_PREFIX}/bin/qjackctl.app"
qjackctl_dir="${qjackctl_app}/Contents/MacOS"
patch_osx_qtapp qjackctl "${QJACKCTL_VERSION}" "${qjackctl_app}"
patch_osx_binary_libs "${qjackctl_dir}/qjackctl"

rm -rf jack2/macosx/qjackctl.app
cp -rv "${PAWPAW_PREFIX}/bin/qjackctl.app" "jack2/macosx/"
cp -rv "${PAWPAW_PREFIX}/bin/qjackctl.app" jack2/macosx/

rm -f jack2-osx-1.9.14.tar.gz
tar czf jack2-osx-1.9.14.tar.gz -C jack2/macosx jack2-osx-1.9.14.pkg qjackctl.app

elif [ "${WIN32}" -eq 1 ]; then
copy_file qjackctl "${QJACKCTL_VERSION}" "src/release/qjackctl.exe" "${PAWPAW_PREFIX}/jack2/bin/qjackctl.exe"

fi
fi



+ 29
- 1
setup/functions.sh View File

@@ -510,15 +510,43 @@ function remove_file() {
function patch_osx_binary_libs() {
local file="${1}"

if otool -L "${file}" | grep -q "${PAWPAW_PREFIX}"; then
if [ -L "${file}" ]; then
return 0
fi

idname=$(otool -D "${file}")

if otool -L "${file}" | grep -v ":" | grep -v "${idname}" | grep -q "${PAWPAW_PREFIX}"; then
install_name_tool -change "@rpath/QtCore.framework/Versions/5/QtCore" "@executable_path/QtCore" "${file}"
install_name_tool -change "@rpath/QtGui.framework/Versions/5/QtGui" "@executable_path/QtGui" "${file}"
install_name_tool -change "@rpath/QtWidgets.framework/Versions/5/QtWidgets" "@executable_path/QtWidgets" "${file}"
install_name_tool -change "@rpath/QtXml.framework/Versions/5/QtXml" "@executable_path/QtXml" "${file}"
install_name_tool -change "@executable_path/../Frameworks/libjack.0.dylib" "/usr/local/lib/libjack.0.dylib" "${file}"
install_name_tool -change "${PAWPAW_PREFIX}/jack2/lib/libjack.0.dylib" "/usr/local/lib/libjack.0.dylib" "${file}"
install_name_tool -change "${PAWPAW_PREFIX}/jack2/lib/libjacknet.0.dylib" "/usr/local/lib/libjacknet.0.dylib" "${file}"
install_name_tool -change "${PAWPAW_PREFIX}/jack2/lib/libjackserver.0.dylib" "/usr/local/lib/libjackserver.0.dylib" "${file}"
fi
}

function patch_osx_qtapp() {
local name="${1}"
local version="${2}"
local appfile="${3}"

local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"

_prebuild "${name}" "${pkgdir}"

mkdir -p "${appfile}/Contents/PlugIns/platforms"
mkdir -p "${appfile}/Contents/PlugIns/printsupport"
cp -v "${PAWPAW_PREFIX}/lib/qt5/plugins/platforms/libqcocoa.dylib" "${appfile}/Contents/PlugIns/platforms/"
cp -v "${PAWPAW_PREFIX}/lib/qt5/plugins/printsupport/libcocoaprintersupport.dylib" "${appfile}/Contents/PlugIns/printsupport/"

macdeployqt "${appfile}"

rm -f "${appfile}/Contents/Frameworks/libjack.0.dylib"

_postbuild
}

# ---------------------------------------------------------------------------------------------------------------------

Loading…
Cancel
Save