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