BUILD.gn 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. # Copyright 2020 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//build/config/chromeos/ui_mode.gni")
  5. import("//build/config/sanitizers/sanitizers.gni")
  6. import("//third_party/protobuf/proto_library.gni")
  7. import("//third_party/tflite/features.gni")
  8. proto_library("tflite-config-proto") {
  9. proto_in_dir = "src"
  10. sources = [ "src/tensorflow/lite/experimental/acceleration/configuration/configuration.proto" ]
  11. cc_generator_options = "lite=true:"
  12. }
  13. config("tflite_config") {
  14. include_dirs = [ "src" ]
  15. if (is_android) {
  16. libs = [ "log" ]
  17. }
  18. }
  19. config("tflite_flags") {
  20. cflags = [
  21. "-Wno-c99-extensions",
  22. "-Wno-comment",
  23. "-Wno-extern-c-compat",
  24. "-Wno-gnu-inline-cpp-without-extern",
  25. "-Wno-loop-analysis",
  26. "-Wno-shadow",
  27. # TODO(crbug.com/1147556): Try to clean/remove no-sign-compare if possible.
  28. "-Wno-sign-compare",
  29. # TODO(thakis): Remove once
  30. # https://github.com/tensorflow/tensorflow/pull/50528 is rolled in.
  31. "-Wno-unreachable-code-break",
  32. "-Wno-unreachable-code-return",
  33. "-Wno-unused-but-set-variable",
  34. # This flag is needed to enable the strip error strings flag since a handful
  35. # of variables are only used in error logs, which are no-op'd in a macro
  36. # when the strings are stripped. Overall, removing the error strings saves
  37. # 90kb of binary size so having a few dangling variables is well worth it,
  38. # in addition to keeping the updating process simple.
  39. "-Wno-unused-variable",
  40. ]
  41. defines = [
  42. "FARMHASH_NO_CXX_STRING",
  43. "NEON2SSE_DISABLE_PERFORMANCE_WARNING",
  44. "TF_LITE_STRIP_ERROR_STRINGS",
  45. ]
  46. if (build_tflite_with_xnnpack) {
  47. defines += [ "TFLITE_BUILD_WITH_XNNPACK_DELEGATE" ]
  48. } else {
  49. defines += [ "TFLITE_WITHOUT_XNNPACK" ]
  50. }
  51. if (is_win) {
  52. cflags += [
  53. "/DTFL_COMPILE_LIBRARY",
  54. "/wd4018",
  55. ]
  56. }
  57. if (build_tflite_with_ruy) {
  58. defines += [ "TFLITE_WITH_RUY" ]
  59. } else if (is_linux || is_chromeos_lacros) {
  60. defines += [ "GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK" ]
  61. }
  62. if (is_chromeos) {
  63. # TODO(crbug.com/1168787): Determine if neon can be supported
  64. # on chromeos builds.
  65. defines += [ "TF_LITE_DISABLE_X86_NEON" ]
  66. }
  67. }
  68. source_set("tflite_public_headers") {
  69. public = [
  70. "src/tensorflow/lite/allocation.h",
  71. "src/tensorflow/lite/arena_planner.h",
  72. "src/tensorflow/lite/c/builtin_op_data.h",
  73. "src/tensorflow/lite/c/common.h",
  74. "src/tensorflow/lite/context.h",
  75. "src/tensorflow/lite/context_util.h",
  76. "src/tensorflow/lite/core/macros.h",
  77. "src/tensorflow/lite/core/subgraph.h",
  78. "src/tensorflow/lite/error_reporter.h",
  79. "src/tensorflow/lite/graph_info.h",
  80. "src/tensorflow/lite/interpreter.h",
  81. "src/tensorflow/lite/interpreter_builder.h",
  82. "src/tensorflow/lite/kernels/builtin_op_kernels.h",
  83. "src/tensorflow/lite/model.h",
  84. "src/tensorflow/lite/model_builder.h",
  85. "src/tensorflow/lite/mutable_op_resolver.h",
  86. "src/tensorflow/lite/op_resolver.h",
  87. "src/tensorflow/lite/optional_debug_tools.h",
  88. "src/tensorflow/lite/schema/schema_generated.h",
  89. "src/tensorflow/lite/schema/schema_utils.h",
  90. "src/tensorflow/lite/signature_runner.h",
  91. "src/tensorflow/lite/stderr_reporter.h",
  92. "src/tensorflow/lite/string_type.h",
  93. "src/tensorflow/lite/string_util.h",
  94. "src/tensorflow/lite/util.h",
  95. ]
  96. configs += [ ":tflite_flags" ]
  97. }
  98. source_set("tflite_kernel_common_headers") {
  99. public = [
  100. "src/tensorflow/lite/experimental/resource/resource_variable.h",
  101. "src/tensorflow/lite/external_cpu_backend_context.h",
  102. "src/tensorflow/lite/kernels/cpu_backend_context.h",
  103. "src/tensorflow/lite/kernels/cpu_backend_gemm.h",
  104. "src/tensorflow/lite/kernels/cpu_backend_gemm_params.h",
  105. "src/tensorflow/lite/kernels/cpu_backend_threadpool.h",
  106. "src/tensorflow/lite/kernels/internal/compatibility.h",
  107. "src/tensorflow/lite/kernels/internal/tensor_ctypes.h",
  108. "src/tensorflow/lite/kernels/op_macros.h",
  109. ]
  110. configs += [ ":tflite_flags" ]
  111. visibility = [ ":*" ]
  112. }
  113. source_set("fft2d_deps") {
  114. public = [
  115. "src/third_party/fft2d/fft.h",
  116. "src/third_party/fft2d/fft2d.h",
  117. ]
  118. deps = [ "//third_party/fft2d" ]
  119. visibility = [ ":*" ]
  120. }
  121. source_set("tflite_kernel_internals") {
  122. sources = [
  123. "src/tensorflow/lite/kernels/internal/common.h",
  124. "src/tensorflow/lite/kernels/internal/cppmath.h",
  125. "src/tensorflow/lite/kernels/internal/kernel_utils.cc",
  126. "src/tensorflow/lite/kernels/internal/kernel_utils.h",
  127. "src/tensorflow/lite/kernels/internal/max.h",
  128. "src/tensorflow/lite/kernels/internal/min.h",
  129. "src/tensorflow/lite/kernels/internal/optimized/batch_matmul.h",
  130. "src/tensorflow/lite/kernels/internal/optimized/cpu_check.cc",
  131. "src/tensorflow/lite/kernels/internal/optimized/cpu_check.h",
  132. "src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h",
  133. "src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_float.h",
  134. "src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_multithread.h",
  135. "src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_uint8.h",
  136. "src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_uint8_3x3_filter.h",
  137. "src/tensorflow/lite/kernels/internal/optimized/eigen_spatial_convolutions.h",
  138. "src/tensorflow/lite/kernels/internal/optimized/im2col_utils.h",
  139. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/add.h",
  140. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/conv.h",
  141. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/depthwise_conv.h",
  142. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/depthwise_conv_3x3_filter.h",
  143. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/depthwise_conv_hybrid.h",
  144. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/depthwise_conv_hybrid_3x3_filter.h",
  145. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/fully_connected.h",
  146. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/mean.h",
  147. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/mul.h",
  148. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/pooling.h",
  149. "src/tensorflow/lite/kernels/internal/optimized/integer_ops/transpose_conv.h",
  150. "src/tensorflow/lite/kernels/internal/optimized/multithreaded_conv.h",
  151. "src/tensorflow/lite/kernels/internal/optimized/neon_check.h",
  152. "src/tensorflow/lite/kernels/internal/optimized/neon_tensor_utils.cc",
  153. "src/tensorflow/lite/kernels/internal/optimized/neon_tensor_utils_impl.h",
  154. "src/tensorflow/lite/kernels/internal/optimized/optimized_ops.h",
  155. "src/tensorflow/lite/kernels/internal/optimized/sparse_ops/fully_connected.h",
  156. "src/tensorflow/lite/kernels/internal/optimized/sse_tensor_utils.cc",
  157. "src/tensorflow/lite/kernels/internal/optimized/sse_tensor_utils_impl.h",
  158. "src/tensorflow/lite/kernels/internal/quantization_util.cc",
  159. "src/tensorflow/lite/kernels/internal/quantization_util.h",
  160. "src/tensorflow/lite/kernels/internal/reference/add.h",
  161. "src/tensorflow/lite/kernels/internal/reference/arg_min_max.h",
  162. "src/tensorflow/lite/kernels/internal/reference/batch_matmul.h",
  163. "src/tensorflow/lite/kernels/internal/reference/binary_function.h",
  164. "src/tensorflow/lite/kernels/internal/reference/ceil.h",
  165. "src/tensorflow/lite/kernels/internal/reference/comparisons.h",
  166. "src/tensorflow/lite/kernels/internal/reference/concatenation.h",
  167. "src/tensorflow/lite/kernels/internal/reference/conv.h",
  168. "src/tensorflow/lite/kernels/internal/reference/densify.h",
  169. "src/tensorflow/lite/kernels/internal/reference/depthwiseconv_float.h",
  170. "src/tensorflow/lite/kernels/internal/reference/depthwiseconv_uint8.h",
  171. "src/tensorflow/lite/kernels/internal/reference/dequantize.h",
  172. "src/tensorflow/lite/kernels/internal/reference/floor.h",
  173. "src/tensorflow/lite/kernels/internal/reference/fully_connected.h",
  174. "src/tensorflow/lite/kernels/internal/reference/integer_ops/add.h",
  175. "src/tensorflow/lite/kernels/internal/reference/integer_ops/conv.h",
  176. "src/tensorflow/lite/kernels/internal/reference/integer_ops/depthwise_conv.h",
  177. "src/tensorflow/lite/kernels/internal/reference/integer_ops/dequantize.h",
  178. "src/tensorflow/lite/kernels/internal/reference/integer_ops/fully_connected.h",
  179. "src/tensorflow/lite/kernels/internal/reference/integer_ops/l2normalization.h",
  180. "src/tensorflow/lite/kernels/internal/reference/integer_ops/log_softmax.h",
  181. "src/tensorflow/lite/kernels/internal/reference/integer_ops/logistic.h",
  182. "src/tensorflow/lite/kernels/internal/reference/integer_ops/mean.h",
  183. "src/tensorflow/lite/kernels/internal/reference/integer_ops/mul.h",
  184. "src/tensorflow/lite/kernels/internal/reference/integer_ops/pooling.h",
  185. "src/tensorflow/lite/kernels/internal/reference/integer_ops/tanh.h",
  186. "src/tensorflow/lite/kernels/internal/reference/integer_ops/transpose_conv.h",
  187. "src/tensorflow/lite/kernels/internal/reference/l2normalization.h",
  188. "src/tensorflow/lite/kernels/internal/reference/logistic.h",
  189. "src/tensorflow/lite/kernels/internal/reference/maximum_minimum.h",
  190. "src/tensorflow/lite/kernels/internal/reference/mul.h",
  191. "src/tensorflow/lite/kernels/internal/reference/neg.h",
  192. "src/tensorflow/lite/kernels/internal/reference/non_max_suppression.h",
  193. "src/tensorflow/lite/kernels/internal/reference/pad.h",
  194. "src/tensorflow/lite/kernels/internal/reference/pooling.h",
  195. "src/tensorflow/lite/kernels/internal/reference/portable_tensor_utils.cc",
  196. "src/tensorflow/lite/kernels/internal/reference/portable_tensor_utils.h",
  197. "src/tensorflow/lite/kernels/internal/reference/portable_tensor_utils_impl.h",
  198. "src/tensorflow/lite/kernels/internal/reference/prelu.h",
  199. "src/tensorflow/lite/kernels/internal/reference/process_broadcast_shapes.h",
  200. "src/tensorflow/lite/kernels/internal/reference/quantize.h",
  201. "src/tensorflow/lite/kernels/internal/reference/reduce.h",
  202. "src/tensorflow/lite/kernels/internal/reference/reference_ops.h",
  203. "src/tensorflow/lite/kernels/internal/reference/requantize.h",
  204. "src/tensorflow/lite/kernels/internal/reference/resize_nearest_neighbor.h",
  205. "src/tensorflow/lite/kernels/internal/reference/round.h",
  206. "src/tensorflow/lite/kernels/internal/reference/softmax.h",
  207. "src/tensorflow/lite/kernels/internal/reference/sparse_ops/fully_connected.h",
  208. "src/tensorflow/lite/kernels/internal/reference/strided_slice.h",
  209. "src/tensorflow/lite/kernels/internal/reference/sub.h",
  210. "src/tensorflow/lite/kernels/internal/reference/svdf.h",
  211. "src/tensorflow/lite/kernels/internal/reference/tanh.h",
  212. "src/tensorflow/lite/kernels/internal/spectrogram.cc",
  213. "src/tensorflow/lite/kernels/internal/spectrogram.h",
  214. "src/tensorflow/lite/kernels/internal/strided_slice_logic.h",
  215. "src/tensorflow/lite/kernels/internal/tensor.h",
  216. "src/tensorflow/lite/kernels/internal/tensor_utils.cc",
  217. "src/tensorflow/lite/kernels/internal/tensor_utils.h",
  218. "src/tensorflow/lite/kernels/internal/transpose_utils.cc",
  219. "src/tensorflow/lite/kernels/internal/transpose_utils.h",
  220. "src/tensorflow/lite/kernels/internal/types.h",
  221. "src/tensorflow/lite/kernels/internal/utils/sparsity_format_converter.cc",
  222. "src/tensorflow/lite/kernels/internal/utils/sparsity_format_converter.h",
  223. ]
  224. deps = [
  225. ":fft2d_deps",
  226. ":tflite_kernel_common_headers",
  227. ":tflite_public_headers",
  228. "//third_party/abseil-cpp:absl",
  229. "//third_party/farmhash",
  230. "//third_party/flatbuffers",
  231. "//third_party/fp16",
  232. "//third_party/gemmlowp",
  233. "//third_party/neon_2_sse",
  234. "//third_party/ruy",
  235. ]
  236. configs += [
  237. ":tflite_config",
  238. ":tflite_flags",
  239. "//third_party/eigen3:eigen_includes",
  240. ]
  241. visibility = [ ":*" ]
  242. }
  243. source_set("tflite_kernels") {
  244. sources = [
  245. "src/tensorflow/lite/kernels/activations.cc",
  246. "src/tensorflow/lite/kernels/add.cc",
  247. "src/tensorflow/lite/kernels/add_n.cc",
  248. "src/tensorflow/lite/kernels/arg_min_max.cc",
  249. "src/tensorflow/lite/kernels/assign_variable.cc",
  250. "src/tensorflow/lite/kernels/basic_rnn.cc",
  251. "src/tensorflow/lite/kernels/batch_matmul.cc",
  252. "src/tensorflow/lite/kernels/batch_to_space_nd.cc",
  253. "src/tensorflow/lite/kernels/bidirectional_sequence_lstm.cc",
  254. "src/tensorflow/lite/kernels/bidirectional_sequence_rnn.cc",
  255. "src/tensorflow/lite/kernels/builtin_op_kernels.h",
  256. "src/tensorflow/lite/kernels/cast.cc",
  257. "src/tensorflow/lite/kernels/ceil.cc",
  258. "src/tensorflow/lite/kernels/comparisons.cc",
  259. "src/tensorflow/lite/kernels/concatenation.cc",
  260. "src/tensorflow/lite/kernels/conv.cc",
  261. "src/tensorflow/lite/kernels/cpu_backend_context.cc",
  262. "src/tensorflow/lite/kernels/cpu_backend_gemm_custom_gemv.h",
  263. "src/tensorflow/lite/kernels/cpu_backend_gemm_eigen.cc",
  264. "src/tensorflow/lite/kernels/cpu_backend_gemm_eigen.h",
  265. "src/tensorflow/lite/kernels/cpu_backend_gemm_ruy.h",
  266. "src/tensorflow/lite/kernels/cumsum.cc",
  267. "src/tensorflow/lite/kernels/densify.cc",
  268. "src/tensorflow/lite/kernels/depth_to_space.cc",
  269. "src/tensorflow/lite/kernels/depthwise_conv.cc",
  270. "src/tensorflow/lite/kernels/dequantize.cc",
  271. "src/tensorflow/lite/kernels/dequantize.h",
  272. "src/tensorflow/lite/kernels/div.cc",
  273. "src/tensorflow/lite/kernels/eigen_support.cc",
  274. "src/tensorflow/lite/kernels/eigen_support.h",
  275. "src/tensorflow/lite/kernels/elementwise.cc",
  276. "src/tensorflow/lite/kernels/embedding_lookup.cc",
  277. "src/tensorflow/lite/kernels/embedding_lookup_sparse.cc",
  278. "src/tensorflow/lite/kernels/exp.cc",
  279. "src/tensorflow/lite/kernels/expand_dims.cc",
  280. "src/tensorflow/lite/kernels/fake_quant.cc",
  281. "src/tensorflow/lite/kernels/fill.cc",
  282. "src/tensorflow/lite/kernels/floor.cc",
  283. "src/tensorflow/lite/kernels/floor_div.cc",
  284. "src/tensorflow/lite/kernels/floor_mod.cc",
  285. "src/tensorflow/lite/kernels/fully_connected.cc",
  286. "src/tensorflow/lite/kernels/gather.cc",
  287. "src/tensorflow/lite/kernels/gather_nd.cc",
  288. "src/tensorflow/lite/kernels/hashtable_lookup.cc",
  289. "src/tensorflow/lite/kernels/if.cc",
  290. "src/tensorflow/lite/kernels/kernel_util.cc",
  291. "src/tensorflow/lite/kernels/kernel_util.h",
  292. "src/tensorflow/lite/kernels/l2norm.cc",
  293. "src/tensorflow/lite/kernels/local_response_norm.cc",
  294. "src/tensorflow/lite/kernels/logical.cc",
  295. "src/tensorflow/lite/kernels/lsh_projection.cc",
  296. "src/tensorflow/lite/kernels/lstm.cc",
  297. "src/tensorflow/lite/kernels/lstm_eval.cc",
  298. "src/tensorflow/lite/kernels/lstm_eval.h",
  299. "src/tensorflow/lite/kernels/lstm_shared.h",
  300. "src/tensorflow/lite/kernels/matrix_diag.cc",
  301. "src/tensorflow/lite/kernels/matrix_set_diag.cc",
  302. "src/tensorflow/lite/kernels/maximum_minimum.cc",
  303. "src/tensorflow/lite/kernels/mirror_pad.cc",
  304. "src/tensorflow/lite/kernels/mul.cc",
  305. "src/tensorflow/lite/kernels/neg.cc",
  306. "src/tensorflow/lite/kernels/non_max_suppression.cc",
  307. "src/tensorflow/lite/kernels/numeric_verify.cc",
  308. "src/tensorflow/lite/kernels/one_hot.cc",
  309. "src/tensorflow/lite/kernels/pack.cc",
  310. "src/tensorflow/lite/kernels/pad.cc",
  311. "src/tensorflow/lite/kernels/padding.h",
  312. "src/tensorflow/lite/kernels/pooling.cc",
  313. "src/tensorflow/lite/kernels/pow.cc",
  314. "src/tensorflow/lite/kernels/quantize.cc",
  315. "src/tensorflow/lite/kernels/range.cc",
  316. "src/tensorflow/lite/kernels/rank.cc",
  317. "src/tensorflow/lite/kernels/read_variable.cc",
  318. "src/tensorflow/lite/kernels/reduce.cc",
  319. "src/tensorflow/lite/kernels/reshape.cc",
  320. "src/tensorflow/lite/kernels/resize_bilinear.cc",
  321. "src/tensorflow/lite/kernels/resize_nearest_neighbor.cc",
  322. "src/tensorflow/lite/kernels/reverse.cc",
  323. "src/tensorflow/lite/kernels/reverse_sequence.cc",
  324. "src/tensorflow/lite/kernels/rfft2d.cc",
  325. "src/tensorflow/lite/kernels/round.cc",
  326. "src/tensorflow/lite/kernels/scatter_nd.cc",
  327. "src/tensorflow/lite/kernels/segment_sum.cc",
  328. "src/tensorflow/lite/kernels/select.cc",
  329. "src/tensorflow/lite/kernels/shape.cc",
  330. "src/tensorflow/lite/kernels/skip_gram.cc",
  331. "src/tensorflow/lite/kernels/slice.cc",
  332. "src/tensorflow/lite/kernels/space_to_batch_nd.cc",
  333. "src/tensorflow/lite/kernels/space_to_depth.cc",
  334. "src/tensorflow/lite/kernels/sparse_to_dense.cc",
  335. "src/tensorflow/lite/kernels/split.cc",
  336. "src/tensorflow/lite/kernels/split_v.cc",
  337. "src/tensorflow/lite/kernels/squared_difference.cc",
  338. "src/tensorflow/lite/kernels/squeeze.cc",
  339. "src/tensorflow/lite/kernels/strided_slice.cc",
  340. "src/tensorflow/lite/kernels/sub.cc",
  341. "src/tensorflow/lite/kernels/svdf.cc",
  342. "src/tensorflow/lite/kernels/tile.cc",
  343. "src/tensorflow/lite/kernels/topk_v2.cc",
  344. "src/tensorflow/lite/kernels/transpose.cc",
  345. "src/tensorflow/lite/kernels/transpose_conv.cc",
  346. "src/tensorflow/lite/kernels/unidirectional_sequence_lstm.cc",
  347. "src/tensorflow/lite/kernels/unidirectional_sequence_rnn.cc",
  348. "src/tensorflow/lite/kernels/unique.cc",
  349. "src/tensorflow/lite/kernels/unpack.cc",
  350. "src/tensorflow/lite/kernels/where.cc",
  351. "src/tensorflow/lite/kernels/while.cc",
  352. "src/tensorflow/lite/kernels/zeros_like.cc",
  353. ]
  354. if (!build_tflite_with_ruy) {
  355. sources += [ "src/tensorflow/lite/kernels/cpu_backend_gemm_gemmlowp.h" ]
  356. }
  357. deps = [
  358. ":fft2d_deps",
  359. ":tflite_kernel_common_headers",
  360. ":tflite_kernel_internals",
  361. ":tflite_public_headers",
  362. "//third_party/abseil-cpp:absl",
  363. "//third_party/farmhash",
  364. "//third_party/flatbuffers",
  365. "//third_party/fp16",
  366. "//third_party/gemmlowp",
  367. "//third_party/neon_2_sse",
  368. "//third_party/ruy",
  369. ]
  370. configs += [
  371. ":tflite_config",
  372. ":tflite_flags",
  373. "//third_party/eigen3:eigen_includes",
  374. ]
  375. visibility = [ ":*" ]
  376. }
  377. # TODO(crbug.com/1147996): Update to a component build. Will require updating the
  378. # tflite version.
  379. static_library("tflite") {
  380. sources = [
  381. "src/tensorflow/lite/allocation.cc",
  382. "src/tensorflow/lite/arena_planner.cc",
  383. "src/tensorflow/lite/builtin_ops.h",
  384. "src/tensorflow/lite/c/common.cc",
  385. "src/tensorflow/lite/c/common.h",
  386. "src/tensorflow/lite/core/api/error_reporter.cc",
  387. "src/tensorflow/lite/core/api/error_reporter.h",
  388. "src/tensorflow/lite/core/api/flatbuffer_conversions.cc",
  389. "src/tensorflow/lite/core/api/flatbuffer_conversions.h",
  390. "src/tensorflow/lite/core/api/op_resolver.cc",
  391. "src/tensorflow/lite/core/api/profiler.h",
  392. "src/tensorflow/lite/core/api/tensor_utils.cc",
  393. "src/tensorflow/lite/core/api/tensor_utils.h",
  394. "src/tensorflow/lite/core/subgraph.cc",
  395. "src/tensorflow/lite/delegates/interpreter_utils.cc",
  396. "src/tensorflow/lite/delegates/interpreter_utils.h",
  397. "src/tensorflow/lite/delegates/nnapi/nnapi_delegate.h",
  398. "src/tensorflow/lite/delegates/nnapi/nnapi_delegate_disabled.cc",
  399. "src/tensorflow/lite/experimental/acceleration/configuration/delegate_registry.cc",
  400. "src/tensorflow/lite/experimental/acceleration/configuration/delegate_registry.h",
  401. "src/tensorflow/lite/experimental/acceleration/configuration/flatbuffer_to_proto.cc",
  402. "src/tensorflow/lite/experimental/acceleration/configuration/flatbuffer_to_proto.h",
  403. "src/tensorflow/lite/experimental/acceleration/configuration/proto_to_flatbuffer.cc",
  404. "src/tensorflow/lite/experimental/acceleration/configuration/proto_to_flatbuffer.h",
  405. "src/tensorflow/lite/experimental/acceleration/mini_benchmark/mini_benchmark.cc",
  406. "src/tensorflow/lite/experimental/acceleration/mini_benchmark/mini_benchmark.h",
  407. "src/tensorflow/lite/experimental/resource/initialization_status.cc",
  408. "src/tensorflow/lite/experimental/resource/initialization_status.h",
  409. "src/tensorflow/lite/experimental/resource/lookup_interfaces.h",
  410. "src/tensorflow/lite/experimental/resource/lookup_util.h",
  411. "src/tensorflow/lite/experimental/resource/resource_base.h",
  412. "src/tensorflow/lite/experimental/resource/resource_variable.cc",
  413. "src/tensorflow/lite/experimental/resource/static_hashtable.cc",
  414. "src/tensorflow/lite/experimental/resource/static_hashtable.h",
  415. "src/tensorflow/lite/external_cpu_backend_context.cc",
  416. "src/tensorflow/lite/graph_info.cc",
  417. "src/tensorflow/lite/interpreter.cc",
  418. "src/tensorflow/lite/interpreter_builder.cc",
  419. "src/tensorflow/lite/interpreter_experimental.cc",
  420. "src/tensorflow/lite/memory_planner.h",
  421. "src/tensorflow/lite/minimal_logging.cc",
  422. "src/tensorflow/lite/minimal_logging.h",
  423. "src/tensorflow/lite/model.h",
  424. "src/tensorflow/lite/model_builder.cc",
  425. "src/tensorflow/lite/model_builder.h",
  426. "src/tensorflow/lite/mutable_op_resolver.cc",
  427. "src/tensorflow/lite/nnapi/NeuralNetworksTypes.h",
  428. "src/tensorflow/lite/nnapi/nnapi_implementation.h",
  429. "src/tensorflow/lite/nnapi/nnapi_implementation_disabled.cc",
  430. "src/tensorflow/lite/optional_debug_tools.cc",
  431. "src/tensorflow/lite/profiling/memory_info.cc",
  432. "src/tensorflow/lite/profiling/memory_info.h",
  433. "src/tensorflow/lite/profiling/platform_profiler.cc",
  434. "src/tensorflow/lite/profiling/platform_profiler.h",
  435. "src/tensorflow/lite/profiling/root_profiler.cc",
  436. "src/tensorflow/lite/profiling/root_profiler.h",
  437. "src/tensorflow/lite/profiling/time.cc",
  438. "src/tensorflow/lite/profiling/time.h",
  439. "src/tensorflow/lite/schema/schema_utils.cc",
  440. "src/tensorflow/lite/signature_runner.cc",
  441. "src/tensorflow/lite/simple_memory_arena.cc",
  442. "src/tensorflow/lite/simple_memory_arena.h",
  443. "src/tensorflow/lite/stderr_reporter.cc",
  444. "src/tensorflow/lite/stderr_reporter.h",
  445. "src/tensorflow/lite/string_util.cc",
  446. "src/tensorflow/lite/tflite_with_xnnpack_optional.cc",
  447. "src/tensorflow/lite/tflite_with_xnnpack_optional.h",
  448. "src/tensorflow/lite/tools/command_line_flags.h",
  449. "src/tensorflow/lite/tools/delegates/delegate_provider.h",
  450. "src/tensorflow/lite/tools/logging.h",
  451. "src/tensorflow/lite/tools/tool_params.h",
  452. "src/tensorflow/lite/tools/verifier.cc",
  453. "src/tensorflow/lite/tools/verifier_internal.cc",
  454. "src/tensorflow/lite/tools/verifier_internal.h",
  455. "src/tensorflow/lite/type_to_tflitetype.h",
  456. "src/tensorflow/lite/util.cc",
  457. "src/tensorflow/lite/version.h",
  458. ]
  459. if (build_tflite_with_xnnpack) {
  460. sources += [
  461. "src/tensorflow/lite/delegates/xnnpack/quantization_util.cc",
  462. "src/tensorflow/lite/delegates/xnnpack/quantization_util.h",
  463. "src/tensorflow/lite/delegates/xnnpack/xnnpack_delegate.cc",
  464. "src/tensorflow/lite/delegates/xnnpack/xnnpack_delegate.h",
  465. ]
  466. }
  467. if (is_win) {
  468. sources += [ "src/tensorflow/lite/mmap_allocation_disabled.cc" ]
  469. } else {
  470. sources += [ "src/tensorflow/lite/mmap_allocation.cc" ]
  471. }
  472. if (is_ios) {
  473. sources += [
  474. "src/tensorflow/lite/minimal_logging_ios.cc",
  475. "src/tensorflow/lite/profiling/signpost_profiler.h",
  476. "src/tensorflow/lite/profiling/signpost_profiler.mm",
  477. ]
  478. } else if (is_android) {
  479. sources += [
  480. "src/tensorflow/lite/minimal_logging_android.cc",
  481. "src/tensorflow/lite/profiling/atrace_profiler.cc",
  482. "src/tensorflow/lite/profiling/atrace_profiler.h",
  483. ]
  484. } else {
  485. sources += [ "src/tensorflow/lite/minimal_logging_default.cc" ]
  486. }
  487. deps = [
  488. "//third_party/abseil-cpp:absl",
  489. "//third_party/farmhash",
  490. "//third_party/fft2d",
  491. "//third_party/fp16",
  492. "//third_party/gemmlowp",
  493. "//third_party/neon_2_sse",
  494. "//third_party/ruy",
  495. ]
  496. if (build_tflite_with_xnnpack) {
  497. deps += [
  498. ":tflite_kernel_internals",
  499. "//third_party/cpuinfo",
  500. "//third_party/pthreadpool",
  501. "//third_party/xnnpack",
  502. ]
  503. }
  504. public_deps = [
  505. ":tflite-config-proto",
  506. ":tflite_kernel_common_headers",
  507. ":tflite_kernels",
  508. ":tflite_public_headers",
  509. "//third_party/flatbuffers",
  510. ]
  511. configs -= [ "//build/config/compiler:chromium_code" ]
  512. configs += [
  513. "//build/config/compiler:no_chromium_code",
  514. "//third_party/eigen3:eigen_includes",
  515. ":tflite_flags",
  516. ]
  517. public_configs = [ ":tflite_config" ]
  518. }