SConscript 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. from building import *
  2. import os
  3. src = Split('''
  4. kernels/activations.cc
  5. kernels/arg_min_max.cc
  6. kernels/ceil.cc
  7. kernels/circular_buffer.cc
  8. kernels/comparisons.cc
  9. kernels/concatenation.cc
  10. kernels/dequantize.cc
  11. kernels/elementwise.cc
  12. kernels/ethosu.cc
  13. kernels/floor.cc
  14. kernels/hard_swish.cc
  15. kernels/kernel_runner.cc
  16. kernels/kernel_util.cc
  17. kernels/l2norm.cc
  18. kernels/logical.cc
  19. kernels/logistic.cc
  20. kernels/maximum_minimum.cc
  21. kernels/neg.cc
  22. kernels/pack.cc
  23. kernels/pad.cc
  24. kernels/prelu.cc
  25. kernels/quantize.cc
  26. kernels/reduce.cc
  27. kernels/reshape.cc
  28. kernels/resize_nearest_neighbor.cc
  29. kernels/round.cc
  30. kernels/split.cc
  31. kernels/strided_slice.cc
  32. kernels/sub.cc
  33. kernels/svdf.cc
  34. kernels/tanh.cc
  35. kernels/unpack.cc
  36. ''') + Glob('*.c') + Glob('*.cc') + Glob('benchmarks/*.cc') \
  37. + Glob('memory_planner/*.cc') + Glob('testing/*.cc')
  38. if GetDepend('PKG_USING_TENSORFLOWLITEMICRO_AUDIO_EXAMPLE'):
  39. src += Glob('examples/micro_speech/*.cc') + Glob('examples/micro_speech/micro_features/*.cc')
  40. if GetDepend('PKG_USING_TENSORFLOWLITEMICRO_REFERENCE'):
  41. src += Split('''
  42. kernels/add.cc
  43. kernels/conv.cc
  44. kernels/depthwise_conv.cc
  45. kernels/fully_connected.cc
  46. kernels/mul.cc
  47. kernels/pooling.cc
  48. kernels/softmax.cc
  49. ''')
  50. if GetDepend('PKG_USING_TENSORFLOWLITEMICRO_CMSISNN'):
  51. src += Split('''
  52. kernels/cmsis-nn/add.cc
  53. kernels/cmsis-nn/conv.cc
  54. kernels/cmsis-nn/depthwise_conv.cc
  55. kernels/cmsis-nn/fully_connected.cc
  56. kernels/cmsis-nn/mul.cc
  57. kernels/cmsis-nn/pooling.cc
  58. kernels/cmsis-nn/softmax.cc
  59. ''')
  60. src += Glob('tools/cmsis/CMSIS/NN/Source/ActivationFunctions/*.c')
  61. src += Glob('tools/cmsis/CMSIS/NN/Source/BasicMathFunctions/*.c')
  62. src += Glob('tools/cmsis/CMSIS/NN/Source/ConcatenationFunctions/*.c')
  63. src += Glob('tools/cmsis/CMSIS/NN/Source/ConvolutionFunctions/*.c')
  64. src += Glob('tools/cmsis/CMSIS/NN/Source/FullyConnectedFunctions/*.c')
  65. src += Glob('tools/cmsis/CMSIS/NN/Source/NNSupportFunctions/*.c')
  66. src += Glob('tools/cmsis/CMSIS/NN/Source/PoolingFunctions/*.c')
  67. src += Glob('tools/cmsis/CMSIS/NN/Source/ReshapeFunctions/*.c')
  68. src += Glob('tools/cmsis/CMSIS/NN/Source/SoftmaxFunctions/*.c')
  69. #.
  70. root = str(Dir('#'))
  71. packages = os.path.join(root, 'packages')
  72. file_list = os.listdir(packages)
  73. for f in file_list:
  74. if(f.split('-')[0] == 'TensorflowLiteMicro'):
  75. tflm_pkg = os.path.join(packages, f)
  76. break
  77. #./third_party/flatbuffer/include
  78. flatbuffer = os.path.join(tflm_pkg, "third_party/flatbuffers/include")
  79. #./third_party/gemmlowp
  80. gemmlowp = os.path.join(tflm_pkg, "third_party/gemmlowp")
  81. #./third_party/kissfft
  82. kissfft = os.path.join(tflm_pkg, "third_party/kissfft")
  83. #./third_party/ruy
  84. ruy = os.path.join(tflm_pkg, "third_party/ruy")
  85. #./tensorflow/lite/micro/tools/make/downloads
  86. cmsis = os.path.join(tflm_pkg, "tensorflow/lite/micro/tools/")
  87. CPPPATH = [tflm_pkg, flatbuffer, gemmlowp, kissfft, ruy, cmsis]
  88. group = DefineGroup('lite/micro', src, depend = ['PKG_USING_TENSORFLOWLITEMICRO'], CPPPATH = CPPPATH)
  89. Return('group')