armnn 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #!/bin/bash
  2. set -e
  3. pushd $(cd $(dirname ${0})/..; pwd) > /dev/null
  4. bold() {
  5. echo "$(tty -s && tput bold)$1$(tty -s && tput sgr0)"
  6. }
  7. clean() {
  8. bold "armnn clean"
  9. rm -rf ./third_party/armnn
  10. }
  11. sync() {
  12. bold "armnn sync"
  13. mkdir -p "./third_party"
  14. if [ -d "./third_party/armnn" ]; then
  15. git -C "./third_party/armnn" pull --quiet --prune
  16. else
  17. git -C "./third_party" clone --quiet --branch master --recursive https://github.com/ARM-software/armnn.git
  18. fi
  19. }
  20. schema() {
  21. bold "armnn schema"
  22. case "${OSTYPE}" in
  23. linux*)
  24. flatc_version=$(curl -s https://api.github.com/repos/google/flatbuffers/releases/latest | grep tag_name | cut -f 2 -d : | cut -f 2 -d '"')
  25. flatc_dir=$(dirname $(mktemp -u))/flatbuffers/${flatc_version}
  26. if [ ! -f "${flatc_dir}/flatc" ]; then
  27. mkdir -p "${flatc_dir}"
  28. pushd "${flatc_dir}" > /dev/null
  29. curl -sL https://github.com/google/flatbuffers/archive/${flatc_version}.tar.gz | tar zx --strip-components 1
  30. cmake -G "Unix Makefiles" . &> /dev/null
  31. make > /dev/null
  32. popd > /dev/null
  33. fi
  34. flatc=${flatc_dir}/flatc
  35. ;;
  36. darwin*)
  37. brew list flatbuffers > /dev/null 2>&1 || brew install flatbuffers > /dev/null
  38. flatc=flatc
  39. ;;
  40. msys*)
  41. flatc_version=$(curl -s https://api.github.com/repos/google/flatbuffers/releases/latest | grep tag_name | cut -f 2 -d : | cut -f 2 -d '"')
  42. flatc_dir=$(dirname $(mktemp -u))/flatbuffers/${flatc_version}
  43. if [ ! -f "${flatc_dir}/flatc.exe" ]; then
  44. mkdir -p "${flatc_dir}"
  45. pushd "${flatc_dir}" > /dev/null
  46. curl -sL -O https://github.com/google/flatbuffers/releases/download/${flatc_version}/flatc_windows_exe.zip
  47. unzip flatc_windows_exe.zip > /dev/null
  48. popd > /dev/null
  49. fi
  50. flatc=${flatc_dir}/flatc.exe
  51. ;;
  52. esac
  53. [[ $(file ./src/armnn-schema.js) =~ CRLF ]] && crlf=1
  54. ${flatc} --no-js-exports -o ./tools/. --js ./third_party/armnn/src/armnnSerializer/ArmnnSchema.fbs
  55. mv ./tools/ArmnnSchema_generated.js ./src/armnn-schema.js
  56. cat <<EOT >> ./src/armnn-schema.js
  57. if (typeof module !== 'undefined' && typeof module.exports === 'object') {
  58. module.exports = armnnSerializer;
  59. }
  60. EOT
  61. if [[ -n ${crlf} ]]; then
  62. unix2dos --quiet --newfile ./src/armnn-schema.js ./src/armnn-schema.js
  63. fi
  64. }
  65. while [ "$#" != 0 ]; do
  66. command="$1" && shift
  67. case "${command}" in
  68. "clean") clean;;
  69. "sync") sync;;
  70. "schema") schema;;
  71. esac
  72. done