[reland 2] on-device: enables enable_ml_internal

Specifically for branded desktop builds.

The most recent reland was reverted because building with
build_with_internal_optimization_guide false and
enable_ml_internal true caused build problems. This reland
sets enable_ml_internal to true only if
build_with_internal_optimization_guide is true. For the time
being the two aren't always the same (chromeos/android). At
some point they should be compiled.


The original change was reverted because of compile issues with
win-arm and mac-intel. This disables the win-arm config (for the
moment). The mac-intel failure is twofold:
1. Some of the optimization-guide code is including tflite, and needs
   to inherit the gn config from neon_2_sse.
   Specifically the file neon_check.h has the include:
   This only works with the neon_2_sse config, which adds the right
   include dir.
2. With (1) fixed, NEON_2_SSE.h generates errors that require
   "-Wno-gnu-inline-cpp-without-extern." Disabling this is already
   in tflite_flags, but it really belongs in neon2 as that is the
   place with the issue.

The fix for 1&2 is only done for the standalone target as we don't
want to add public configs to targets that disable compiler warnings.


Bug b:308802463

Change-Id: Ib2d18808ee22835b824556d337b9a49f25d63665
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5064228
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Sophie Chang <sophiechang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1229635}
4 files changed
tree: 12fda76f84afcb0aa7b4164b01e43601178626bd
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. webkit/
  51. .clang-format
  52. .clang-tidy
  53. .clangd
  54. .eslintrc.js
  55. .git-blame-ignore-revs
  56. .gitattributes
  57. .gitignore
  58. .gitmodules
  59. .gn
  60. .mailmap
  61. .rustfmt.toml
  62. .vpython3
  63. .yapfignore
  64. ATL_OWNERS
  65. AUTHORS
  66. BUILD.gn
  67. CODE_OF_CONDUCT.md
  68. codereview.settings
  69. DEPS
  70. DIR_METADATA
  71. LICENSE
  72. LICENSE.chromium_os
  73. OWNERS
  74. PRESUBMIT.py
  75. PRESUBMIT_test.py
  76. PRESUBMIT_test_mocks.py
  77. README.md
  78. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.