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.

642 lines
18KB

  1. #!/bin/bash
  2. # ---------------------------------------------------------------------------------------------------------------------
  3. function download() {
  4. local name="${1}"
  5. local version="${2}"
  6. local dlbaseurl="${3}"
  7. local dlext="${4}"
  8. local dlmethod="${5}"
  9. local dlname="${6}"
  10. if [ -z "${dlext}" ]; then
  11. dlext="tar.gz"
  12. fi
  13. if [ -z "${dlname}" ]; then
  14. dlname="${name}"
  15. fi
  16. local dlfile="${PAWPAW_DOWNLOADDIR}/${dlname}-${version}.${dlext}"
  17. local dlfolder="${PAWPAW_BUILDDIR}/${name}-${version}"
  18. if [ ! -f "${dlfile}" ]; then
  19. if [ -n "${dlmethod}" ] && [ "${dlmethod}" = "git" ]; then
  20. local tmprepodir="${PAWPAW_TMPDIR}/${dlname}-${version}"
  21. rm -rf "${tmprepodir}"
  22. git clone --recursive "${dlbaseurl}" "${tmprepodir}"
  23. git -C "${tmprepodir}" checkout "${version}"
  24. git -C "${tmprepodir}" submodule update
  25. tar --exclude=".git" -czf "${dlfile}" -C "${PAWPAW_TMPDIR}" "${dlname}-${version}"
  26. rm -rf "${tmprepodir}"
  27. else
  28. local dlurl
  29. if echo ${dlbaseurl} | grep -q github.com; then
  30. if [ x"${dlmethod}" = x"nv" ]; then
  31. dlurl="${dlbaseurl}/${version}.${dlext}"
  32. else
  33. dlurl="${dlbaseurl}/v${version}.${dlext}"
  34. fi
  35. elif [ "${dlext}" = "orig.tar.gz" ]; then
  36. dlurl="${dlbaseurl}/${dlname}_${version}.${dlext}"
  37. else
  38. dlurl="${dlbaseurl}/${dlname}-${version}.${dlext}"
  39. fi
  40. curl -L "${dlurl}" -o "${dlfile}" --fail
  41. fi
  42. fi
  43. if [ ! -d "${dlfolder}" ]; then
  44. mkdir "${dlfolder}"
  45. tar -xf "${dlfile}" -C "${dlfolder}" --strip-components=1
  46. fi
  47. }
  48. function copy_download() {
  49. local name1="${1}"
  50. local name2="${2}"
  51. local version="${3}"
  52. local dlext="${4}"
  53. if [ -z "${dlext}" ]; then
  54. dlext="tar.gz"
  55. fi
  56. local dlfile1="${PAWPAW_DOWNLOADDIR}/${name1}-${version}.${dlext}"
  57. local dlfolder2="${PAWPAW_BUILDDIR}/${name2}-${version}"
  58. if [ ! -d "${dlfolder2}" ]; then
  59. mkdir "${dlfolder2}"
  60. tar -xf "${dlfile1}" -C "${dlfolder2}" --strip-components=1
  61. fi
  62. }
  63. # ---------------------------------------------------------------------------------------------------------------------
  64. function _prebuild() {
  65. local name="${1}"
  66. local pkgdir="${2}"
  67. export AR="${TARGET_AR}"
  68. export CC="${TARGET_CC}"
  69. export CXX="${TARGET_CXX}"
  70. export LD="${TARGET_LD}"
  71. export STRIP="${TARGET_STRIP}"
  72. export CFLAGS="${TARGET_CFLAGS} ${EXTRA_CFLAGS}"
  73. export CXXFLAGS="${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS}"
  74. export LDFLAGS="${TARGET_LDFLAGS} ${EXTRA_LDFLAGS}"
  75. export PKG_CONFIG_PATH="${TARGET_PKG_CONFIG_PATH}"
  76. unset CPPFLAGS
  77. export OLD_PATH="${PATH}"
  78. export PATH="${TARGET_PATH}"
  79. if [ -d "${PAWPAW_ROOT}/patches/${name}" ] && [ ! -f "${pkgdir}/.stamp_cleanup" ]; then
  80. for p in $(ls "${PAWPAW_ROOT}/patches/${name}/" | grep "\.patch" | sort); do
  81. if [ ! -f "${pkgdir}/.stamp_applied_${p}" ]; then
  82. patch -p1 -d "${pkgdir}" -i "${PAWPAW_ROOT}/patches/${name}/${p}"
  83. touch "${pkgdir}/.stamp_applied_${p}"
  84. fi
  85. done
  86. fi
  87. if [ -d "${PAWPAW_ROOT}/patches/${name}/${PAWPAW_TARGET}" ] && [ ! -f "${pkgdir}/.stamp_cleanup" ]; then
  88. for p in $(ls "${PAWPAW_ROOT}/patches/${name}/${PAWPAW_TARGET}/" | grep "\.patch" | sort); do
  89. if [ ! -f "${pkgdir}/.stamp_applied_${p}" ]; then
  90. patch -p1 -d "${pkgdir}" -i "${PAWPAW_ROOT}/patches/${name}/${PAWPAW_TARGET}/${p}"
  91. touch "${pkgdir}/.stamp_applied_${p}"
  92. fi
  93. done
  94. fi
  95. if [ ! -f "${pkgdir}/.stamp_configured" ]; then
  96. rm -f "${pkgdir}/.stamp_built"
  97. rm -f "${pkgdir}/.stamp_installed"
  98. rm -f "${pkgdir}/.stamp_verified"
  99. rm -f "${pkgdir}/CMakeCache.txt"
  100. elif [ ! -f "${pkgdir}/.stamp_built" ]; then
  101. rm -f "${pkgdir}/.stamp_installed"
  102. rm -f "${pkgdir}/.stamp_verified"
  103. elif [ ! -f "${pkgdir}/.stamp_installed" ]; then
  104. rm -f "${pkgdir}/.stamp_verified"
  105. fi
  106. }
  107. function _postbuild() {
  108. unset AR
  109. unset CC
  110. unset CXX
  111. unset LD
  112. unset STRIP
  113. unset CFLAGS
  114. unset CPPFLAGS
  115. unset CXXFLAGS
  116. unset LDFLAGS
  117. unset PKG_CONFIG_PATH
  118. unset EXTRA_CFLAGS
  119. unset EXTRA_CXXFLAGS
  120. unset EXTRA_LDFLAGS
  121. unset EXTRA_MAKE_ARGS
  122. export PATH="${OLD_PATH}"
  123. }
  124. # ---------------------------------------------------------------------------------------------------------------------
  125. function build_autoconf() {
  126. local name="${1}"
  127. local version="${2}"
  128. local extraconfrules="${3}"
  129. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  130. if [ "${CROSS_COMPILING}" -eq 1 ]; then
  131. extraconfrules="--host=${TOOLCHAIN_PREFIX} ${extraconfrules}"
  132. fi
  133. _prebuild "${name}" "${pkgdir}"
  134. if [ ! -f "${pkgdir}/.stamp_configured" ]; then
  135. pushd "${pkgdir}"
  136. ./configure --enable-static --disable-shared --disable-debug --disable-doc --disable-docs --disable-maintainer-mode --prefix="${PAWPAW_PREFIX}" ${extraconfrules}
  137. touch .stamp_configured
  138. popd
  139. fi
  140. if [ ! -f "${pkgdir}/.stamp_built" ]; then
  141. pushd "${pkgdir}"
  142. make ${MAKE_ARGS} ${EXTRA_MAKE_ARGS}
  143. touch .stamp_built
  144. popd
  145. fi
  146. if [ ! -f "${pkgdir}/.stamp_installed" ]; then
  147. pushd "${pkgdir}"
  148. make ${MAKE_ARGS} install -j 1
  149. touch .stamp_installed
  150. popd
  151. fi
  152. _postbuild
  153. }
  154. function build_autoconfgen() {
  155. local name="${1}"
  156. local version="${2}"
  157. local extraconfrules="${3}"
  158. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  159. local EXTRA_CFLAGS2="${EXTRA_CFLAGS}"
  160. local EXTRA_CXXFLAGS2="${EXTRA_CXXFLAGS}"
  161. local EXTRA_LDFLAGS2="${EXTRA_LDFLAGS}"
  162. local EXTRA_MAKE_ARGS2="${EXTRA_MAKE_ARGS}"
  163. _prebuild "${name}" "${pkgdir}"
  164. if [ ! -f "${pkgdir}/.stamp_preconfigured" ]; then
  165. pushd "${pkgdir}"
  166. autoconf
  167. touch .stamp_preconfigured
  168. popd
  169. fi
  170. _postbuild
  171. export EXTRA_CFLAGS="${EXTRA_CFLAGS2}"
  172. export EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS2}"
  173. export EXTRA_LDFLAGS="${EXTRA_LDFLAGS2}"
  174. export EXTRA_MAKE_ARGS="${EXTRA_MAKE_ARGS2}"
  175. build_autoconf "${name}" "${version}" "${extraconfrules}"
  176. }
  177. function build_conf() {
  178. local name="${1}"
  179. local version="${2}"
  180. local extraconfrules="${3}"
  181. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  182. _prebuild "${name}" "${pkgdir}"
  183. if [ ! -f "${pkgdir}/.stamp_configured" ]; then
  184. pushd "${pkgdir}"
  185. ./configure ${extraconfrules}
  186. touch .stamp_configured
  187. popd
  188. fi
  189. if [ ! -f "${pkgdir}/.stamp_built" ]; then
  190. pushd "${pkgdir}"
  191. make ${MAKE_ARGS} ${EXTRA_MAKE_ARGS}
  192. touch .stamp_built
  193. popd
  194. fi
  195. if [ ! -f "${pkgdir}/.stamp_installed" ]; then
  196. pushd "${pkgdir}"
  197. make ${MAKE_ARGS} -j 1 install
  198. touch .stamp_installed
  199. popd
  200. fi
  201. _postbuild
  202. }
  203. function build_cmake() {
  204. local name="${1}"
  205. local version="${2}"
  206. local extraconfrules="${3}"
  207. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  208. if [ "${CROSS_COMPILING}" -eq 1 ]; then
  209. extraconfrules+=" -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}"
  210. fi
  211. if [ "${MACOS}" -eq 1 ]; then
  212. if [ "${MACOS_OLD}" -eq 1 ]; then
  213. OSX_ARCHS="i686"
  214. OSX_TARGET="10.5"
  215. elif [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
  216. OSX_ARCHS="arm64;x86_64"
  217. OSX_TARGET="10.12"
  218. else
  219. OSX_ARCHS="x86_64"
  220. OSX_TARGET="10.8"
  221. fi
  222. extraconfrules+=" -DCMAKE_OSX_ARCHITECTURES=${OSX_ARCHS}"
  223. extraconfrules+=" -DCMAKE_OSX_DEPLOYMENT_TARGET=${OSX_TARGET}"
  224. fi
  225. _prebuild "${name}" "${pkgdir}"
  226. mkdir -p "${pkgdir}/build"
  227. if [ ! -f "${pkgdir}/.stamp_configured" ]; then
  228. pushd "${pkgdir}/build"
  229. cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_PREFIX="${PAWPAW_PREFIX}" ${extraconfrules} ..
  230. touch ../.stamp_configured
  231. popd
  232. fi
  233. if [ ! -f "${pkgdir}/.stamp_built" ]; then
  234. pushd "${pkgdir}/build"
  235. make ${MAKE_ARGS} ${EXTRA_MAKE_ARGS}
  236. touch ../.stamp_built
  237. popd
  238. fi
  239. if [ ! -f "${pkgdir}/.stamp_installed" ]; then
  240. pushd "${pkgdir}/build"
  241. make ${MAKE_ARGS} -j 1 install
  242. touch ../.stamp_installed
  243. popd
  244. fi
  245. _postbuild
  246. }
  247. function build_make() {
  248. local name="${1}"
  249. local version="${2}"
  250. local extraconfrules="${3}"
  251. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  252. _prebuild "${name}" "${pkgdir}"
  253. touch "${pkgdir}/.stamp_configured"
  254. if [ ! -f "${pkgdir}/.stamp_built" ]; then
  255. pushd "${pkgdir}"
  256. make PREFIX="${PAWPAW_PREFIX}" PKG_CONFIG="${TARGET_PKG_CONFIG}" ${MAKE_ARGS} ${extraconfrules}
  257. touch .stamp_built
  258. popd
  259. fi
  260. if [ ! -f "${pkgdir}/.stamp_installed" ]; then
  261. pushd "${pkgdir}"
  262. make PREFIX="${PAWPAW_PREFIX}" PKG_CONFIG="${TARGET_PKG_CONFIG}" ${MAKE_ARGS} ${extraconfrules} -j 1 install
  263. touch .stamp_installed
  264. popd
  265. fi
  266. _postbuild
  267. }
  268. function build_meson() {
  269. local name="${1}"
  270. local version="${2}"
  271. local extraconfrules="${3}"
  272. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  273. if [ "${CROSS_COMPILING}" -eq 1 ]; then
  274. extraconfrules="--cross-file "${PAWPAW_ROOT}/setup/meson/${PAWPAW_TARGET}.ini" ${extraconfrules}"
  275. fi
  276. _prebuild "${name}" "${pkgdir}"
  277. if [ ! -f "${pkgdir}/.stamp_configured" ]; then
  278. pushd "${pkgdir}"
  279. meson build --buildtype release --prefix "${PAWPAW_PREFIX}" ${extraconfrules}
  280. touch .stamp_configured
  281. popd
  282. fi
  283. if [ ! -f "${pkgdir}/.stamp_built" ]; then
  284. pushd "${pkgdir}"
  285. ninja -v -C build
  286. touch .stamp_built
  287. popd
  288. fi
  289. if [ ! -f "${pkgdir}/.stamp_installed" ]; then
  290. pushd "${pkgdir}"
  291. ninja -C build install
  292. touch .stamp_installed
  293. popd
  294. fi
  295. _postbuild
  296. }
  297. function build_python() {
  298. local name="${1}"
  299. local version="${2}"
  300. local extraconfrules="${3}"
  301. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  302. local python=python3
  303. if [ ! -e "${PAWPAW_PREFIX}/bin/python3" ] && ! which python3 > /dev/null; then
  304. python=python
  305. fi
  306. _prebuild "${name}" "${pkgdir}"
  307. # fix build of python packages
  308. export CFLAGS="$(echo ${CFLAGS} | sed -e 's/-fvisibility=hidden//')"
  309. export CFLAGS="$(echo ${CFLAGS} | sed -e 's/-ffast-math//')"
  310. export CFLAGS="$(echo ${CFLAGS} | sed -e 's/-fdata-sections -ffunction-sections//')"
  311. export CXXFLAGS="$(echo ${CXXFLAGS} | sed -e 's/-fvisibility=hidden//')"
  312. export CXXFLAGS="$(echo ${CXXFLAGS} | sed -e 's/-ffast-math//')"
  313. export CXXFLAGS="$(echo ${CXXFLAGS} | sed -e 's/-fvisibility-inlines-hidden//')"
  314. export CXXFLAGS="$(echo ${CXXFLAGS} | sed -e 's/-fdata-sections -ffunction-sections//')"
  315. export LDFLAGS="$(echo ${LDFLAGS} | sed -e 's/-Wl,-dead_strip -Wl,-dead_strip_dylibs//')"
  316. export LDFLAGS="$(echo ${LDFLAGS} | sed -e 's/-fdata-sections -ffunction-sections//')"
  317. touch "${pkgdir}/.stamp_configured"
  318. if [ ! -f "${pkgdir}/.stamp_built" ]; then
  319. pushd "${pkgdir}"
  320. ${python} setup.py build ${extraconfrules}
  321. touch .stamp_built
  322. popd
  323. fi
  324. if [ ! -f "${pkgdir}/.stamp_installed" ]; then
  325. pushd "${pkgdir}"
  326. ${python} setup.py install --prefix="${PAWPAW_PREFIX}" ${extraconfrules}
  327. touch .stamp_installed
  328. popd
  329. fi
  330. _postbuild
  331. }
  332. function build_qmake() {
  333. local name="${1}"
  334. local version="${2}"
  335. local extraconfrules="${3}"
  336. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  337. _prebuild "${name}" "${pkgdir}"
  338. if [ ! -f "${pkgdir}/.stamp_configured" ]; then
  339. pushd "${pkgdir}"
  340. qmake ${extraconfrules}
  341. touch .stamp_configured
  342. popd
  343. fi
  344. if [ ! -f "${pkgdir}/.stamp_built" ]; then
  345. pushd "${pkgdir}"
  346. make ${MAKE_ARGS} ${EXTRA_MAKE_ARGS}
  347. touch .stamp_built
  348. popd
  349. fi
  350. if [ ! -f "${pkgdir}/.stamp_installed" ]; then
  351. pushd "${pkgdir}"
  352. make ${MAKE_ARGS} -j 1 install
  353. touch .stamp_installed
  354. popd
  355. fi
  356. _postbuild
  357. }
  358. function build_waf() {
  359. local name="${1}"
  360. local version="${2}"
  361. local extraconfrules="${3}"
  362. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  363. local python=python3
  364. if ! which python3 > /dev/null; then
  365. python=python
  366. fi
  367. _prebuild "${name}" "${pkgdir}"
  368. if [ ! -f "${pkgdir}/.stamp_configured" ]; then
  369. pushd "${pkgdir}"
  370. ${python} waf configure --prefix="${PAWPAW_PREFIX}" ${extraconfrules}
  371. touch .stamp_configured
  372. popd
  373. fi
  374. if [ ! -f "${pkgdir}/.stamp_built" ]; then
  375. pushd "${pkgdir}"
  376. ${python} waf build ${WAF_ARGS}
  377. touch .stamp_built
  378. popd
  379. fi
  380. if [ ! -f "${pkgdir}/.stamp_installed" ]; then
  381. pushd "${pkgdir}"
  382. ${python} waf install ${WAF_ARGS} --prefix="${PAWPAW_PREFIX}" ${extraconfrules} -j 1
  383. rm -f ${PAWPAW_PREFIX}/lib/lv2/*/*.a
  384. touch .stamp_installed
  385. popd
  386. fi
  387. _postbuild
  388. }
  389. # ---------------------------------------------------------------------------------------------------------------------
  390. function build_host_autoconf() {
  391. local name="${1}"
  392. local version="${2}"
  393. local extraconfrules="${3}"
  394. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  395. unset AR
  396. unset CC
  397. unset CXX
  398. unset LD
  399. unset STRIP
  400. unset CFLAGS
  401. unset CPPFLAGS
  402. unset CXXFLAGS
  403. unset LDFLAGS
  404. if [ ! -f "${pkgdir}/.stamp_configured" ]; then
  405. pushd "${pkgdir}"
  406. ./configure --enable-static --disable-shared --disable-maintainer-mode --prefix="${PAWPAW_PREFIX}" ${extraconfrules}
  407. touch .stamp_configured
  408. popd
  409. fi
  410. if [ ! -f "${pkgdir}/.stamp_built" ]; then
  411. pushd "${pkgdir}"
  412. make ${MAKE_ARGS}
  413. touch .stamp_built
  414. popd
  415. fi
  416. if [ ! -f "${pkgdir}/.stamp_installed" ]; then
  417. pushd "${pkgdir}"
  418. make ${MAKE_ARGS} install -j 1
  419. touch .stamp_installed
  420. popd
  421. fi
  422. }
  423. # ---------------------------------------------------------------------------------------------------------------------
  424. function patch_file() {
  425. local name="${1}"
  426. local version="${2}"
  427. local file="${3}"
  428. local rule="${4}"
  429. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  430. if [ -e "${pkgdir}/${file}" ]; then
  431. sed -i -e "${rule}" "${pkgdir}/${file}"
  432. fi
  433. }
  434. function copy_file() {
  435. local name="${1}"
  436. local version="${2}"
  437. local source="${3}"
  438. local target="${4}"
  439. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  440. if [ ! -e "${pkgdir}/${target}" ] || [ "${source}" -nt "${target}" ]; then
  441. pushd "${pkgdir}"
  442. cp -v "${source}" "${target}"
  443. popd
  444. fi
  445. }
  446. function install_file() {
  447. local name="${1}"
  448. local version="${2}"
  449. local source="${3}"
  450. local targetdir="${4}"
  451. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  452. if [ ! -e "${PAWPAW_PREFIX}/${targetdir}/$(basename ${source})" ]; then
  453. pushd "${pkgdir}"
  454. cp -v "${source}" "${PAWPAW_PREFIX}/${targetdir}/"
  455. popd
  456. fi
  457. }
  458. function link_file() {
  459. local name="${1}"
  460. local version="${2}"
  461. local source="${3}"
  462. local target="${4}"
  463. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  464. if [ ! -e "${pkgdir}/${target}" ]; then
  465. pushd "${pkgdir}"
  466. ln -sfv "${source}" "${target}"
  467. popd
  468. fi
  469. }
  470. function remove_file() {
  471. local name="${1}"
  472. local version="${2}"
  473. local file="${3}"
  474. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  475. if [ -e "${pkgdir}/${file}" ]; then
  476. rm -fv "${pkgdir}/${file}"
  477. fi
  478. }
  479. # ---------------------------------------------------------------------------------------------------------------------
  480. function patch_osx_binary_libs() {
  481. local file="${1}"
  482. if [ -L "${file}" ]; then
  483. return 0
  484. fi
  485. idname=$(otool -D "${file}")
  486. if otool -L "${file}" | grep -v ":" | grep -v "${idname}" | grep -q "${PAWPAW_PREFIX}"; then
  487. #install_name_tool -change "@rpath/QtCore.framework/Versions/5/QtCore" "@executable_path/QtCore" "${file}"
  488. #install_name_tool -change "@rpath/QtGui.framework/Versions/5/QtGui" "@executable_path/QtGui" "${file}"
  489. #install_name_tool -change "@rpath/QtWidgets.framework/Versions/5/QtWidgets" "@executable_path/QtWidgets" "${file}"
  490. #install_name_tool -change "@rpath/QtXml.framework/Versions/5/QtXml" "@executable_path/QtXml" "${file}"
  491. install_name_tool -change "@executable_path/../Frameworks/libjack.0.dylib" "/usr/local/lib/libjack.0.dylib" "${file}"
  492. install_name_tool -change "${PAWPAW_PREFIX}/jack2/lib/libjack.0.dylib" "/usr/local/lib/libjack.0.dylib" "${file}"
  493. install_name_tool -change "${PAWPAW_PREFIX}/jack2/lib/libjacknet.0.dylib" "/usr/local/lib/libjacknet.0.dylib" "${file}"
  494. install_name_tool -change "${PAWPAW_PREFIX}/jack2/lib/libjackserver.0.dylib" "/usr/local/lib/libjackserver.0.dylib" "${file}"
  495. fi
  496. }
  497. function patch_osx_qtapp() {
  498. local name="${1}"
  499. local version="${2}"
  500. local appfile="${3}"
  501. local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}"
  502. _prebuild "${name}" "${pkgdir}"
  503. mkdir -p "${appfile}/Contents/PlugIns/platforms"
  504. mkdir -p "${appfile}/Contents/PlugIns/printsupport"
  505. cp -v "${PAWPAW_PREFIX}/lib/qt5/plugins/platforms/libqcocoa.dylib" "${appfile}/Contents/PlugIns/platforms/"
  506. cp -v "${PAWPAW_PREFIX}/lib/qt5/plugins/printsupport/libcocoaprintersupport.dylib" "${appfile}/Contents/PlugIns/printsupport/"
  507. macdeployqt "${appfile}"
  508. rm -f "${appfile}/Contents/Frameworks/libjack.0.dylib"
  509. _postbuild
  510. }
  511. # ---------------------------------------------------------------------------------------------------------------------