Fix build_with_chromium=false Android webrtc build attempt #2

This CL:
1) Replaces GN variable used to filter //third_party/android_deps
dependencies with a new GN variable - limit_android_deps
The new GN variable is needed because:
  - angle does not use JUnit tests. The standalone angle checkout should
    not require //third_party/robolectric for "gn gen" to work.
  - webrtc does use JUnit tests and thus requires
    //third_party/robolectric
This change fixes the standalone WebRTC breakage caused by
https://chromium-review.googlesource.com/c/chromium/src/+/2812340

2) Removes build_with_chromium requirement for _generate_final_jni
in android_apk_or_module() GN template. This change is needed because
the standalone webrtc build uses JNI. Angle will set
"generate_final_jni" GN variable to avoid //base dependency.

WebRTC bug:12634

Change-Id: I4ad86f33dfea32cb2fb4632e83ab14c0f9f7f4b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2815530
Commit-Queue: Peter Kotwicz <pkotwicz@chromium.org>
Reviewed-by: Mohamed Heikal <mheikal@chromium.org>
Reviewed-by: Peter Wen <wnwen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#871341}
GitOrigin-RevId: f4d6a45f2164a47ff2249bcfc793840e5bd632aa
1 file changed
tree: f8adaec746b3cdecbd390b20a09d31bf3be86e2e
  1. .gitignore
  2. .style.yapf
  3. BUILD.gn
  4. DIR_METADATA
  5. OWNERS
  6. OWNERS.setnoparent
  7. OWNERS.status
  8. README.md
  9. add_rts_filters.py
  10. android/
  11. apple/
  12. args/
  13. build-ctags.sh
  14. build_config.h
  15. buildflag.h
  16. buildflag_header.gni
  17. check_gn_headers.py
  18. check_gn_headers_unittest.py
  19. check_gn_headers_whitelist.txt
  20. check_return_value.py
  21. chromeos/
  22. ciopfs.sha1
  23. cipd/
  24. clobber.py
  25. compiled_action.gni
  26. compute_build_timestamp.py
  27. config/
  28. copy_test_data_ios.py
  29. cp.py
  30. detect_host_arch.py
  31. dir_exists.py
  32. docs/
  33. dotfile_settings.gni
  34. download_nacl_toolchains.py
  35. env_dump.py
  36. extract_from_cab.py
  37. extract_partition.py
  38. find_depot_tools.py
  39. fix_gn_headers.py
  40. fuchsia/
  41. gdb-add-index
  42. get_landmines.py
  43. get_symlink_targets.py
  44. gn_helpers.py
  45. gn_helpers_unittest.py
  46. gn_logs.gni
  47. gn_run_binary.py
  48. install-build-deps-android.sh
  49. install-build-deps.sh
  50. install-chroot.sh
  51. internal/
  52. ios/
  53. lacros/
  54. landmine_utils.py
  55. landmines.py
  56. linux/
  57. locale_tool.py
  58. mac/
  59. mac_toolchain.py
  60. nocompile.gni
  61. noop.py
  62. partitioned_shared_library.gni
  63. precompile.cc
  64. precompile.h
  65. print_python_deps.py
  66. protoc_java.py
  67. protoc_java.pydeps
  68. redirect_stdout.py
  69. rm.py
  70. sample_arg_file.gn
  71. sanitize-mac-build-log.sed
  72. sanitize-mac-build-log.sh
  73. sanitize-win-build-log.sed
  74. sanitize-win-build-log.sh
  75. sanitizers/
  76. shim_headers.gni
  77. skia_gold_common/
  78. symlink.gni
  79. symlink.py
  80. timestamp.gni
  81. toolchain/
  82. tree_truth.sh
  83. update-linux-sandbox.sh
  84. util/
  85. vs_toolchain.py
  86. whitespace_file.txt
  87. win/
  88. write_build_date_header.py
  89. write_buildflag_header.py
  90. xcode_binaries.yaml
README.md

About

//build contains:

  • Core GN templates and configuration
  • Core Python build scripts

Since this directory is DEPS'ed in by some other repositories (webrtc, pdfium, v8, etc), it should be kept as self-contained as possible by not referring to files outside of it. Some exceptions exist (//testing, select //third_party subdirectories), but new dependencies tend to break these other projects, and so should be avoided.

Changes to //build should be landed in the Chromium repo. They will then be replicated to the stand-alone build repo by the gsubtreed tool. Note: You can find all directories already available through gsubtreed in the list of all chromium repos.

Contents

  • //build/config - Common templates via .gni files.
  • //build/toolchain - GN toolchain definitions.
  • Other .py files - Some are used by GN/Ninja. Some by gclient hooks, some are just random utilities.

Files referenced by //.gn:

  • //build/BUILDCONFIG.gn - Included by all BUILD.gn files.
  • //build/secondary - An overlay for BUILD.gn files. Enables adding BUILD.gn to directories that live in sub-repositories.
  • //build_overrides - Refer to //build_overrides/README.md.

Docs