Collection of DPF-based plugins for packaging
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.

163 lines
5.4KB

  1. #!/bin/bash
  2. # the realpath function is not available on some systems
  3. if ! which realpath &>/dev/null; then
  4. function realpath() {
  5. [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
  6. }
  7. fi
  8. set -e
  9. DPF_UTILS_DIR="$(dirname $(realpath ${0}))"
  10. if [ -d bin ]; then
  11. cd bin
  12. elif [ -d build/bin ]; then
  13. cd build/bin
  14. else
  15. echo "Please run this script from the root folder"
  16. exit
  17. fi
  18. # can be overridden by environment variables
  19. MACOS_PKG_LICENSE_FILE=${MACOS_PKG_LICENSE_FILE:=""}
  20. MACOS_PKG_NAME=${MACOS_PKG_NAME:="$(basename $(git rev-parse --show-toplevel))"}
  21. MACOS_PKG_SNAME=${MACOS_PKG_SNAME:="$(echo ${MACOS_PKG_NAME} | tr -d ' ' | tr '/' '-')"}
  22. MACOS_PKG_SYMBOL=${MACOS_PKG_SYMBOL:="studio.kx.distrho.plugins.${MACOS_PKG_SNAME}"}
  23. MACOS_PKG_WELCOME_TXT=${MACOS_PKG_WELCOME_TXT:=${DPF_UTILS_DIR}/plugin.pkg/welcome.txt.in}
  24. # backwards compat
  25. if [ -n "${WELCOME_TXT}" ]; then
  26. MACOS_PKG_WELCOME_TXT="${WELCOME_TXT}"
  27. fi
  28. SKIP_START="<!--"
  29. SKIP_END="-->"
  30. if [ -n "${MACOS_INSTALLER_DEV_ID}" ]; then
  31. PKG_SIGN_ARGS=(--sign "${MACOS_INSTALLER_DEV_ID}")
  32. fi
  33. rm -rf pkg
  34. mkdir pkg
  35. if [ -z "${MACOS_PKG_LICENSE_FILE}" ]; then
  36. SKIP_LICENSE_START="${SKIP_START}"
  37. SKIP_LICENSE_END="${SKIP_END}"
  38. fi
  39. ENABLE_AU=$(find . -maxdepth 1 -name '*.component' -print -quit | grep -q '.component' && echo 1 || echo)
  40. if [ -n "${ENABLE_AU}" ]; then
  41. mkdir pkg/au
  42. cp -RL *.component pkg/au/
  43. [ -n "${MACOS_APP_DEV_ID}" ] && codesign -s "${MACOS_APP_DEV_ID}" --deep --force --verbose --option=runtime pkg/au/*.component
  44. pkgbuild \
  45. --identifier "${MACOS_PKG_SYMBOL}-components" \
  46. --install-location "/Library/Audio/Plug-Ins/Components/" \
  47. --root "${PWD}/pkg/au/" \
  48. "${PKG_SIGN_ARGS[@]}" \
  49. ../dpf-${MACOS_PKG_SNAME}-components.pkg
  50. else
  51. SKIP_AU_START="${SKIP_START}"
  52. SKIP_AU_END="${SKIP_END}"
  53. fi
  54. ENABLE_CLAP=$(find . -maxdepth 1 -name '*.clap' -print -quit | grep -q '.clap' && echo 1 || echo)
  55. if [ -n "${ENABLE_CLAP}" ]; then
  56. mkdir pkg/clap
  57. cp -RL *.clap pkg/clap/
  58. [ -n "${MACOS_APP_DEV_ID}" ] && codesign -s "${MACOS_APP_DEV_ID}" --deep --force --verbose --option=runtime pkg/clap/*.clap
  59. pkgbuild \
  60. --identifier "${MACOS_PKG_SYMBOL}-clapbundles" \
  61. --install-location "/Library/Audio/Plug-Ins/CLAP/" \
  62. --root "${PWD}/pkg/clap/" \
  63. "${PKG_SIGN_ARGS[@]}" \
  64. ../dpf-${MACOS_PKG_SNAME}-clapbundles.pkg
  65. else
  66. SKIP_CLAP_START="${SKIP_START}"
  67. SKIP_CLAP_END="${SKIP_END}"
  68. fi
  69. ENABLE_LV2=$(find . -maxdepth 1 -name '*.lv2' -print -quit | grep -q '.lv2' && echo 1 || echo)
  70. if [ -n "${ENABLE_LV2}" ]; then
  71. mkdir pkg/lv2
  72. cp -RL *.lv2 pkg/lv2/
  73. [ -n "${MACOS_APP_DEV_ID}" ] && codesign -s "${MACOS_APP_DEV_ID}" --force --verbose --option=runtime pkg/lv2/*.lv2/*.dylib
  74. pkgbuild \
  75. --identifier "${MACOS_PKG_SYMBOL}-lv2bundles" \
  76. --install-location "/Library/Audio/Plug-Ins/LV2/" \
  77. --root "${PWD}/pkg/lv2/" \
  78. "${PKG_SIGN_ARGS[@]}" \
  79. ../dpf-${MACOS_PKG_SNAME}-lv2bundles.pkg
  80. else
  81. SKIP_LV2_START="${SKIP_START}"
  82. SKIP_LV2_END="${SKIP_END}"
  83. fi
  84. ENABLE_VST2=$(find . -maxdepth 1 -name '*.vst' -print -quit | grep -q '.vst' && echo 1 || echo)
  85. if [ -n "${ENABLE_VST2}" ]; then
  86. mkdir pkg/vst2
  87. cp -RL *.vst pkg/vst2/
  88. [ -n "${MACOS_APP_DEV_ID}" ] && codesign -s "${MACOS_APP_DEV_ID}" --deep --force --verbose --option=runtime pkg/vst2/*.vst
  89. pkgbuild \
  90. --identifier "${MACOS_PKG_SYMBOL}-vst2bundles" \
  91. --install-location "/Library/Audio/Plug-Ins/VST/" \
  92. --root "${PWD}/pkg/vst2/" \
  93. "${PKG_SIGN_ARGS[@]}" \
  94. ../dpf-${MACOS_PKG_SNAME}-vst2bundles.pkg
  95. else
  96. SKIP_VST2_START="${SKIP_START}"
  97. SKIP_VST2_END="${SKIP_END}"
  98. fi
  99. ENABLE_VST3=$(find . -maxdepth 1 -name '*.vst3' -print -quit | grep -q '.vst3' && echo 1 || echo)
  100. if [ -n "${ENABLE_VST3}" ]; then
  101. mkdir pkg/vst3
  102. cp -RL *.vst3 pkg/vst3/
  103. [ -n "${MACOS_APP_DEV_ID}" ] && codesign -s "${MACOS_APP_DEV_ID}" --deep --force --verbose --option=runtime pkg/vst3/*.vst3
  104. pkgbuild \
  105. --identifier "${MACOS_PKG_SYMBOL}-vst3bundles" \
  106. --install-location "/Library/Audio/Plug-Ins/VST3/" \
  107. --root "${PWD}/pkg/vst3/" \
  108. "${PKG_SIGN_ARGS[@]}" \
  109. ../dpf-${MACOS_PKG_SNAME}-vst3bundles.pkg
  110. else
  111. SKIP_VST3_START="${SKIP_START}"
  112. SKIP_VST3_END="${SKIP_END}"
  113. fi
  114. cd ..
  115. mkdir -p build
  116. sed -e "s|@name@|${MACOS_PKG_NAME}|" "${MACOS_PKG_WELCOME_TXT}" > build/welcome.txt
  117. sed -e "s|@builddir@|${PWD}/build|" \
  118. -e "s|@skip_license_start@|${SKIP_LICENSE_START}|" \
  119. -e "s|@skip_au_start@|${SKIP_AU_START}|" \
  120. -e "s|@skip_clap_start@|${SKIP_CLAP_START}|" \
  121. -e "s|@skip_lv2_start@|${SKIP_LV2_START}|" \
  122. -e "s|@skip_vst2_start@|${SKIP_VST2_START}|" \
  123. -e "s|@skip_vst3_start@|${SKIP_VST3_START}|" \
  124. -e "s|@skip_license_end@|${SKIP_LICENSE_END}|" \
  125. -e "s|@skip_au_end@|${SKIP_AU_END}|" \
  126. -e "s|@skip_clap_end@|${SKIP_CLAP_END}|" \
  127. -e "s|@skip_lv2_end@|${SKIP_LV2_END}|" \
  128. -e "s|@skip_vst2_end@|${SKIP_VST2_END}|" \
  129. -e "s|@skip_vst3_end@|${SKIP_VST3_END}|" \
  130. -e "s|@license_file@|${MACOS_PKG_LICENSE_FILE}|" \
  131. -e "s|@name@|${MACOS_PKG_NAME}|g" \
  132. -e "s|@sname@|${MACOS_PKG_SNAME}|g" \
  133. -e "s|@symbol@|${MACOS_PKG_SYMBOL}|g" \
  134. ${DPF_UTILS_DIR}/plugin.pkg/package.xml.in > build/package.xml
  135. productbuild \
  136. --distribution build/package.xml \
  137. --identifier "${MACOS_PKG_SYMBOL}" \
  138. --package-path "${PWD}" \
  139. --version 0 \
  140. "${PKG_SIGN_ARGS[@]}" \
  141. ${MACOS_PKG_SNAME}-macOS.pkg
  142. # xcrun notarytool submit build/*-macOS.pkg --keychain-profile "build-notary" --wait
  143. # xcrun notarytool log --keychain-profile "build-notary" 00000000-0000-0000-0000-000000000000