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.

76 lines
2.1KB

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