DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

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