Cross-Platform build scripts for audio plugins
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.4KB

  1. #!/bin/bash
  2. set -e
  3. cd $(dirname ${0})
  4. PAWPAW_ROOT="${PWD}"
  5. JACK2_VERSION=${JACK2_VERSION:=git}
  6. QJACKCTL_VERSION=${QJACKCTL_VERSION:=0.6.2}
  7. # ---------------------------------------------------------------------------------------------------------------------
  8. target="${1}"
  9. if [ -z "${target}" ]; then
  10. echo "usage: ${0} <target> [package-build?]"
  11. exit 1
  12. fi
  13. # TODO check that bootstrap-jack.sh has been run
  14. # ---------------------------------------------------------------------------------------------------------------------
  15. source setup/check_target.sh
  16. source setup/env.sh
  17. source setup/functions.sh
  18. source setup/versions.sh
  19. # ---------------------------------------------------------------------------------------------------------------------
  20. jack2_repo="https://github.com/jackaudio/jack2.git"
  21. jack2_prefix="${PAWPAW_PREFIX}-jack2"
  22. if [ "${MACOS}" -eq 1 ]; then
  23. jack2_extra_prefix="/usr/local"
  24. fi
  25. # ---------------------------------------------------------------------------------------------------------------------
  26. if [ ! -e jack2 ]; then
  27. ln -s "${PAWPAW_BUILDDIR}/jack2-${JACK2_VERSION}" jack2
  28. fi
  29. # ---------------------------------------------------------------------------------------------------------------------
  30. if [ "${WIN32}" -eq 1 ]; then
  31. dlfile="${PAWPAW_DOWNLOADDIR}/innosetup-6.0.5.exe"
  32. innodir="${PAWPAW_BUILDDIR}/innosetup-6.0.5"
  33. iscc="${innodir}/drive_c/InnoSeup/ISCC.exe"
  34. wine="env WINEARCH="${PAWPAW_TARGET}" WINEDLLOVERRIDES="mscoree,mshtml=" WINEPREFIX="${innodir}" wine"
  35. if [ ! -f "${dlfile}" ]; then
  36. # FIXME proper dl version
  37. curl -L https://jrsoftware.org/download.php/is.exe?site=2 -o "${dlfile}"
  38. fi
  39. if [ ! -d "${innodir}"/drive_c ]; then
  40. ${wine}boot -u
  41. fi
  42. if [ ! -f "${innodir}"/drive_c/InnoSeup/ISCC.exe ]; then
  43. ${wine} "${dlfile}" /allusers /dir=C:\\InnoSeup /nocancel /norestart /verysilent
  44. fi
  45. pushd "${PAWPAW_BUILDDIR}/jack2-${JACK2_VERSION}/windows/inno"
  46. echo "#define VERSION \"${JACK2_VERSION}\"" > "version.iss"
  47. ln -sf "${PAWPAW_PREFIX}/bin/Qt5"{Core,Gui,Network,Widgets,Xml}".dll" .
  48. ln -sf "${PAWPAW_PREFIX}/lib/qt5/plugins/platforms/qwindows.dll" .
  49. ln -sf "${jack2_prefix}" "${PAWPAW_TARGET}"
  50. ${wine} "${iscc}" "${PAWPAW_TARGET}.iss"
  51. popd
  52. mv "${PAWPAW_BUILDDIR}/jack2-${JACK2_VERSION}/windows/inno/"*.exe .
  53. elif [ "${MACOS}" -eq 1 ]; then
  54. for f in $(ls "${jack2_prefix}${jack2_extra_prefix}/bin"/* \
  55. "${jack2_prefix}${jack2_extra_prefix}/lib"/*.dylib \
  56. "${jack2_prefix}${jack2_extra_prefix}/lib/jack"/*); do
  57. patch_osx_binary_libs "${f}"
  58. done
  59. jack2_lastversion=$(cat jack2/wscript | awk 'sub("VERSION=","")' | tr -d "'")
  60. ./jack2/macosx/generate-pkg.sh "${jack2_prefix}${jack2_extra_prefix}/"
  61. qjackctl_app="${PAWPAW_PREFIX}/bin/qjackctl.app"
  62. qjackctl_dir="${qjackctl_app}/Contents/MacOS"
  63. patch_osx_qtapp qjackctl "${QJACKCTL_VERSION}" "${qjackctl_app}"
  64. patch_osx_binary_libs "${qjackctl_dir}/qjackctl"
  65. rm -rf jack2/macosx/qjackctl.app
  66. cp -rv "${PAWPAW_PREFIX}/bin/qjackctl.app" jack2/macosx/
  67. rm -f jack2-macOS-${JACK2_VERSION}.tar.gz
  68. tar czf jack2-macOS-${JACK2_VERSION}.tar.gz -C jack2/macosx jack2-osx-${jack2_lastversion}.pkg qjackctl.app
  69. fi
  70. # ---------------------------------------------------------------------------------------------------------------------