Browse Source

Merge branch 'master' of github.com:DISTRHO/PawPaw

tags/v1.0
falkTX 4 years ago
parent
commit
772673995d
2 changed files with 69 additions and 9 deletions
  1. +53
    -9
      build-jack.sh
  2. +16
    -0
      setup/functions.sh

+ 53
- 9
build-jack.sh View File

@@ -13,10 +13,14 @@ QJACKCTL_VERSION=0.6.2
target="${1}"

if [ -z "${target}" ]; then
echo "usage: ${0} <target>"
echo "usage: ${0} <target> [package-build?]"
exit 1
fi

if [ -n "${2}" ]; then
PACKAGING_BUILD="y"
fi

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

# TODO check that bootstrap.sh has been run
@@ -185,32 +189,59 @@ fi

build_waf jack2 "${JACK2_VERSION}" "${jack2_args}"

# patch pkg-config file for static builds in regular prefix
# remove useless dbus-specific file
rm "${PAWPAW_PREFIX}/jack2/bin/jack_control"

# copy jack pkg-config file to main system, so qjackctl can find it
if [ ! -e "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc" ]; then
if [ "${WIN64}" -eq 1 ]; then
s="64"
else
s=""
fi
cp -v "${PAWPAW_PREFIX}/jack2/lib/pkgconfig/jack.pc" "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc"

# patch pkg-config file for static win32 builds in regular prefix
if [ "${WIN32}" -eq 1 ]; then
# FIXME rule that works for server lib too
if [ "${WIN64}" -eq 1 ]; then
s="64"
else
s=""
fi
# FIXME rule that works for server lib too, maybe ignoring suffix even
sed -i -e "s/lib -ljack${s}/lib -Wl,-Bdynamic -ljack${s} -Wl,-Bstatic/" "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc"
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

if [ "${WIN64}" -eq 1 ]; then
patch_file qjackctl "${QJACKCTL_VERSION}" "configure" 's/-ljack /-Wl,-Bdynamic -ljack64 -Wl,-Bstatic /'
elif [ "${WIN32}" -eq 1 ]; then
patch_file qjackctl "${QJACKCTL_VERSION}" "configure" 's/-ljack /-Wl,-Bdynamic -ljack -Wl,-Bstatic /'
fi

build_autoconf qjackctl "${QJACKCTL_VERSION}" "--enable-jack-version"
if [ "${WIN32}" -eq 1 ]; then

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
@@ -221,3 +252,16 @@ if [ "${MACOS}" -eq 1 ] && [ "${CROSS_COMPILING}" -eq 0 ]; then
fi

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

if [ -n "${PACKAGING_BUILD}" ]; then
if [ "${MACOS}" -eq 1 ]; then
./jack2/macosx/generate-pkg.sh "${PAWPAW_PREFIX}/jack2/"

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

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

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

+ 16
- 0
setup/functions.sh View File

@@ -506,3 +506,19 @@ function remove_file() {
}

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

function patch_osx_binary_libs() {
local file="${1}"

if otool -L "${file}" | 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 "${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
}

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

Loading…
Cancel
Save