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.

75 lines
2.1KB

  1. #!/bin/bash
  2. set -e
  3. cd $(dirname ${0})
  4. PAWPAW_ROOT="${PWD}"
  5. # ---------------------------------------------------------------------------------------------------------------------
  6. target="${1}"
  7. if [ -z "${target}" ]; then
  8. echo "usage: ${0} <target> <plugin>"
  9. exit 1
  10. fi
  11. shift
  12. # TODO check that bootstrap.sh has been run
  13. # ---------------------------------------------------------------------------------------------------------------------
  14. source setup/check_target.sh
  15. source setup/env.sh
  16. source setup/functions.sh
  17. source setup/versions.sh
  18. # ---------------------------------------------------------------------------------------------------------------------
  19. for plugin in ${@}; do
  20. pfile="${PAWPAW_ROOT}/plugins/${plugin}.json"
  21. if [ ! -e "${pfile}" ]; then
  22. echo "Requested plugin file '${pfile}' does not exist"
  23. exit 2
  24. fi
  25. name=$(jq -crM .name ${pfile})
  26. version=$(jq -crM .version ${pfile})
  27. buildtype=$(jq -crM .buildtype ${pfile})
  28. dlbaseurl=$(jq -crM .dlbaseurl ${pfile})
  29. # optional args
  30. buildargs=$(echo -e $(jq -ecrM .buildargs ${pfile} || echo '\n\n') | tail -n 1)
  31. dlext=$(echo -e $(jq -ecrM .dlext ${pfile} || echo '\n\n') | tail -n 1)
  32. dlmethod=$(echo -e $(jq -ecrM .dlmethod ${pfile} || echo '\n\n') | tail -n 1)
  33. download "${name}" "${version}" "${dlbaseurl}" "${dlext}" "${dlmethod}"
  34. # TODO patch_file support?
  35. case ${buildtype} in
  36. "autoconf")
  37. build_autoconf "${name}" "${version}" "${buildargs}"
  38. ;;
  39. "conf")
  40. build_conf "${name}" "${version}" "${buildargs}"
  41. ;;
  42. "cmake")
  43. build_cmake "${name}" "${version}" "${buildargs}"
  44. ;;
  45. "make")
  46. build_make "${name}" "${version}" "${buildargs}"
  47. ;;
  48. "meson")
  49. build_meson "${name}" "${version}" "${buildargs}"
  50. ;;
  51. "waf")
  52. build_waf "${name}" "${version}" "${buildargs}"
  53. ;;
  54. esac
  55. done
  56. # ---------------------------------------------------------------------------------------------------------------------