# This file is used by the GN meta build system to find the root of the source
# tree and to set startup options. For documentation on the values set in this
# file, run "gn help dotfile" at the command line.

import("//build/dotfile_settings.gni")
import("//third_party/angle/dotfile_settings.gni")

# The location of the build configuration file.
buildconfig = "//build/config/BUILDCONFIG.gn"

# These arguments override the default values for items in a declare_args
# block. "gn args" in turn can override these.
#
# In general the value for a build arg in the declare_args block should be the
# default. In some cases, a DEPS-ed in project will want different defaults for
# being built as part of Chrome vs. being built standalone. In this case, the
# Chrome defaults should go here. There should be no overrides here for
# values declared in the main Chrome repository.
#
# Important note for defining defaults: This file is executed before the
# BUILDCONFIG.gn file. That file sets up the global variables like "is_ios".
# This means that the default_args can not depend on the platform,
# architecture, or other build parameters. If you really need that, the other
# repo should define a flag that toggles on a behavior that implements the
# additional logic required by Chrome to set the variables.
default_args = {
  # TODO(brettw) bug 684096: Chrome on iOS does not build v8, so "gn gen" prints
  # a warning that "Build argument has no effect". When adding a v8 variable, it
  # also needs to be defined to src/ios/BUILD.gn (respectively removed from both
  # location when it is removed).

  v8_extra_library_files = []
  v8_experimental_extra_library_files = []
  v8_enable_gdbjit = false
  v8_imminent_deprecation_warnings = false

  # TODO(jochen): Remove this. http://crbug.com/v8/5830,
  # http://crbug.com/728583.
  v8_check_microtasks_scopes_consistency = false

  # Don't include webrtc's builtin task queue implementation.
  rtc_link_task_queue_impl = false

  # Don't include the iLBC audio codec.
  # TODO(bugs.webrtc.org/8396): Once WebRTC gets rid of its internal
  # deps on codecs, we can remove this.
  rtc_include_ilbc = false

  # Changes some setup for the Crashpad build to set them to build against
  # Chromium's zlib, base, etc.
  crashpad_dependencies = "chromium"
}

# These are the targets to check headers for by default. The files in targets
# matching these patterns (see "gn help label_pattern" for format) will have
# their includes checked for proper dependencies when you run either
# "gn check" or "gn gen --check".
check_targets = [
  "//android_webview/*",
  "//apps/*",
  "//ash/*",
  "//base/*",
  "//blink/*",
  "//build/*",
  "//buildtools/*",
  "//cc/*",

  #"//chrome/*",          # Many errors: https://crbug.com/949535

  "//chrome/android/*",
  "//chrome/app/*",
  "//chrome/app_shim/*",

  #"//chrome/browser/*",  # ~1300 errors
  #"//chrome/browser:*",  # ~600 errors
  "//chrome/browser/accessibility/*",
  "//chrome/browser/android/*",
  "//chrome/browser/app_mode/*",
  "//chrome/browser/apps/*",
  "//chrome/browser/assist_ranker/*",
  "//chrome/browser/autocomplete/*",
  "//chrome/browser/autofill/*",
  "//chrome/browser/background/*",
  "//chrome/browser/background_fetch/*",
  "//chrome/browser/background_sync/*",
  "//chrome/browser/banners/*",
  "//chrome/browser/bitmap_fetcher/*",
  "//chrome/browser/bookmarks/*",
  "//chrome/browser/browsing_data/*",
  "//chrome/browser/budget_service/*",
  "//chrome/browser/captive_portal/*",
  "//chrome/browser/chooser_controller/*",
  "//chrome/browser/chromeos/*",
  "//chrome/browser/client_hints/*",
  "//chrome/browser/clipboard/*",
  "//chrome/browser/component_updater/*",
  "//chrome/browser/consent_auditor/*",
  "//chrome/browser/content_settings/*",
  "//chrome/browser/crash_upload_list/*",
  "//chrome/browser/custom_handlers/*",
  "//chrome/browser/data_saver/*",
  "//chrome/browser/data_use_measurement/*",
  "//chrome/browser/dbus/*",

  #"//chrome/browser/devtools/*",  # 93 errors
  "//chrome/browser/diagnostics/*",
  "//chrome/browser/domain_reliability/*",
  "//chrome/browser/dom_distiller/*",
  "//chrome/browser/downgrade/*",
  "//chrome/browser/download/*",
  "//chrome/browser/drive/*",
  "//chrome/browser/engagement/*",
  "//chrome/browser/extensions/*",
  "//chrome/browser/external_protocol/*",
  "//chrome/browser/favicon/*",
  "//chrome/browser/feature_engagement/*",
  "//chrome/browser/feedback/*",
  "//chrome/browser/first_run/*",
  "//chrome/browser/gcm/*",
  "//chrome/browser/generic_sensor/*",
  "//chrome/browser/geolocation/*",
  "//chrome/browser/google/*",
  "//chrome/browser/gpu/*",
  "//chrome/browser/guest_view/*",
  "//chrome/browser/hang_monitor/*",
  "//chrome/browser/history/*",
  "//chrome/browser/importer/*",
  "//chrome/browser/infobars/*",
  "//chrome/browser/installable/*",
  "//chrome/browser/install_verification/*",
  "//chrome/browser/internal/*",
  "//chrome/browser/interstitials/*",
  "//chrome/browser/invalidation/*",
  "//chrome/browser/language/*",
  "//chrome/browser/lifetime/*",

  #"//chrome/browser/loader/*",  # 2 errors
  "//chrome/browser/local_discovery/*",
  "//chrome/browser/mac/*",

  #"//chrome/browser/media/*",  # 74 errors
  "//chrome/browser/media_galleries/*",
  "//chrome/browser/memory/*",
  "//chrome/browser/metrics/*",
  "//chrome/browser/nacl_host/*",
  "//chrome/browser/navigation_predictor/*",
  "//chrome/browser/net/*",
  "//chrome/browser/notifications/*",
  "//chrome/browser/ntp_snippets/*",
  "//chrome/browser/ntp_tiles/*",
  "//chrome/browser/obsolete_system/*",
  "//chrome/browser/offline_items_collection/*",
  "//chrome/browser/offline_pages/*",
  "//chrome/browser/page_load_metrics/*",
  "//chrome/browser/password_manager/*",
  "//chrome/browser/payments/*",
  "//chrome/browser/pdf/*",
  "//chrome/browser/performance_monitor/*",
  "//chrome/browser/permissions/*",
  "//chrome/browser/picture_in_picture/*",
  "//chrome/browser/plugins/*",
  "//chrome/browser/policy/*",
  "//chrome/browser/predictors/*",
  "//chrome/browser/prefetch/*",
  "//chrome/browser/prefs/*",
  "//chrome/browser/prerender/*",
  "//chrome/browser/previews/*",
  "//chrome/browser/printing/*",
  "//chrome/browser/profile_resetter/*",
  "//chrome/browser/profiles/*",

  #"//chrome/browser/profiling_host/*",  # 16 errors
  "//chrome/browser/push_messaging/*",
  "//chrome/browser/recovery/*",
  "//chrome/browser/renderer_context_menu/*",
  "//chrome/browser/renderer_host/*",
  "//chrome/browser/resource_coordinator/*",

  #"//chrome/browser/resources/*",  # 18 errors on ChromeOS
  "//chrome/browser/rlz/*",

  #"//chrome/browser/safe_browsing/*",  # 239 errors
  "//chrome/browser/search/*",
  "//chrome/browser/search_engines/*",
  "//chrome/browser/search_provider_logos/*",
  "//chrome/browser/service_process/*",
  "//chrome/browser/sessions/*",
  "//chrome/browser/signin/*",
  "//chrome/browser/speech/*",
  "//chrome/browser/spellchecker/*",
  "//chrome/browser/ssl/*",
  "//chrome/browser/status_icons/*",
  "//chrome/browser/storage/*",
  "//chrome/browser/subresource_filter/*",
  "//chrome/browser/supervised_user/*",
  "//chrome/browser/sync/*",
  "//chrome/browser/sync_file_system/*",
  "//chrome/browser/tab_contents/*",
  "//chrome/browser/task_manager/*",
  "//chrome/browser/themes/*",
  "//chrome/browser/tracing/*",
  "//chrome/browser/translate/*",
  "//chrome/browser/ui/*",
  "//chrome/browser/undo/*",
  "//chrome/browser/unified_consent/*",
  "//chrome/browser/update_client/*",
  "//chrome/browser/upgrade_detector/*",
  "//chrome/browser/usb/*",
  "//chrome/browser/vr/*",
  "//chrome/browser/web_applications/*",
  "//chrome/browser/webauthn/*",
  "//chrome/browser/webshare/*",
  "//chrome/browser/win/*",

  "//chrome/build/*",

  #"//chrome/child/*",  # 1 error on Windows
  "//chrome/chrome_elf/*",
  "//chrome/chrome_cleaner/*",

  "//chrome/common/*",

  "//chrome/elevation_service/*",

  #"//chrome/gpu/*",  # 7 errors
  "//chrome/installer/*",

  #"//chrome/install_static/*",  # 8 errors on Windows
  "//chrome/nacl/*",

  #"//chrome/notification_helper/*",  # 4 errors on Windows
  #"//chrome/renderer/*",  # ~30 errors
  #"//chrome/service/*",  # 2 errors
  #"//chrome/services/*",  # ~30 errors
  #"//chrome/test/*",  # ~1900 errors
  "//chrome/test/chromedriver",
  "//chrome/third_party/*",
  "//chrome/tools/*",
  "//chrome/updater/*",
  "//chrome/utility/*",

  "//chromecast/*",
  "//chromeos/*",
  "//cloud_print/*",
  "//components/*",
  "//content/*",
  "//courgette/*",
  "//crypto/*",
  "//data/*",
  "//dbus/*",
  "//device/*",

  #"//extensions/*",  # Lots of errors.
  "//extensions:extensions_resources",
  "//extensions:extensions_browsertests",
  "//extensions:extensions_unittests",
  "//extensions/browser",
  "//extensions/browser:core_api_provider",
  "//extensions/browser:browser_tests",
  "//extensions/browser:test_support",
  "//extensions/browser:unit_tests",
  "//extensions/browser/api:api_registration",
  "//extensions/browser/install:*",
  "//extensions/browser/kiosk/*",
  "//extensions/browser/guest_view/web_view/web_ui/*",
  "//extensions/common/*",
  "//extensions/components/javascript_dialog_extensions_client",
  "//extensions/components/native_app_window",
  "//extensions/renderer/*",
  "//extensions/shell/*",
  "//extensions/strings/*",
  "//fuchsia/*",
  "//gin/*",
  "//google_apis/*",
  "//google_update/*",
  "//gpu/*",

  "//ios/*",
  "//ios_internal/*",
  "//ipc/*",

  #"//jingle/*",

  "//libassistant/communication/*",
  "//libinteraction/*",

  "//media/*",
  "//mojo/*",

  #"//native_client/*",
  "//net/*",

  #"//pdf/*",  # Medium-hard.
  #"//ppapi/*",  # Lots of errors.
  "//ppapi/examples/*",
  "//ppapi/tests/*",
  "//printing/*",

  #"//remoting/*",  # Medium-hard.
  "//rlz/*",

  #"//sandbox/*",  # Medium-hard.
  "//services/*",
  "//skia/*",
  "//sql/*",
  "//storage/*",
  "//testing/*",

  #"//third_party/*",  # May not ever want this.
  "//third_party:freetype_harfbuzz",
  "//third_party/Python-Markdown/*",
  "//third_party/SPIRV-Tools/*",
  "//third_party/abseil-cpp/*",
  "//third_party/accessibility-audit/*",
  "//third_party/accessibility_test_framework/*",
  "//third_party/adobe/*",
  "//third_party/afl/*",
  "//third_party/android_build_tools/*",
  "//third_party/android_crazy_linker/*",
  "//third_party/android_data_chart/*",
  "//third_party/android_deps/*",
  "//third_party/android_media/*",
  "//third_party/android_ndk/*",
  "//third_party/android_opengl/*",
  "//third_party/android_platform/*",
  "//third_party/android_protobuf/*",
  "//third_party/android_sdk/*",
  "//third_party/android_support_test_runner/*",
  "//third_party/android_swipe_refresh/*",
  "//third_party/android_system_sdk/*",
  "//third_party/android_testrunner/*",
  "//third_party/angle/*",
  "//third_party/apache-portable-runtime/*",
  "//third_party/apache_velocity/*",
  "//third_party/apache-win32/*",
  "//third_party/apk-patch-size-estimator/*",
  "//third_party/apple_apsl/*",
  "//third_party/appurify-python/*",
  "//third_party/arcore-android-sdk/*",
  "//third_party/ashmem/*",
  "//third_party/axe-core/*",
  "//third_party/bazel/*",
  "//third_party/blanketjs/*",

  # "//third_party/blink/*",  # Errors: https://crbug.com/800764
  "//third_party/blink/public/*",

  #"//third_party/breakpad/*",  # Small errors.
  "//third_party/boringssl/*",
  "//third_party/bouncycastle/*",
  "//third_party/brotli/*",
  "//third_party/bspatch/*",
  "//third_party/byte_buddy/*",
  "//third_party/cacheinvalidation/*",
  "//third_party/catapult/*",

  # "//third_party/ced/*",  # 6 errors
  "//third_party/chaijs/*",
  "//third_party/checkstyle/*",
  "//third_party/chromevox/*",
  "//third_party/chromite/*",
  "//third_party/cld_2/*",
  "//third_party/cld_3/*",
  "//third_party/closure_compiler/*",
  "//third_party/colorama/*",

  # "//third_party/crashpad/*", 20ish errors
  "//third_party/crc32c/*",
  "//third_party/cros_system_api/*",
  "//third_party/cython/*",
  "//third_party/d3/*",
  "//third_party/dawn/*",
  "//third_party/decklink/*",
  "//third_party/depot_tools/*",
  "//third_party/deqp/*",
  "//third_party/devscripts/*",
  "//third_party/dom_distiller_js/*",
  "//third_party/elfutils/*",
  "//third_party/espresso/*",
  "//third_party/expat/*",
  "//third_party/eyesfree/*",

  # "//third_party/ffmpeg/*",  # android_cronet only https://crbug.com/898793
  "//third_party/flac/*",
  "//third_party/flatbuffers/*",
  "//third_party/fontconfig/*",
  "//third_party/freetype/*",
  "//third_party/freetype2/*",
  "//third_party/freetype-android/*",
  "//third_party/fuchsia-sdk/*",
  "//third_party/gif_player/*",
  "//third_party/glfw/*",
  "//third_party/glslang/*",
  "//third_party/google_appengine_cloudstorage/*",
  "//third_party/google_input_tools/*",
  "//third_party/googletest/*",
  "//third_party/google_toolbox_for_mac/*",
  "//third_party/google-truth/*",
  "//third_party/gradle_wrapper/*",
  "//third_party/guava/*",
  "//third_party/gvr-android-keyboard/*",
  "//third_party/gvr-android-sdk/*",
  "//third_party/hamcrest/*",
  "//third_party/harfbuzz-ng/*",
  "//third_party/hunspell/*",
  "//third_party/hunspell/*",
  "//third_party/hunspell_dictionaries/*",
  "//third_party/iaccessible2/*",
  "//third_party/iccjpeg/*",

  # "//third_party/icu/*",  # Many errors
  "//third_party/icu4j/*",
  "//third_party/ijar/*",
  "//third_party/ink/*",
  "//third_party/inspector_protocol/*",
  "//third_party/instrumented_libraries/*",
  "//third_party/isimpledom/*",
  "//third_party/javax_inject/*",
  "//third_party/jinja2/*",
  "//third_party/jsoncpp/*",
  "//third_party/jstemplate/*",
  "//third_party/junit/*",
  "//third_party/khronos/*",
  "//third_party/lcov/*",
  "//third_party/leakcanary/*",
  "//third_party/leveldatabase/*",
  "//third_party/libFuzzer/*",
  "//third_party/libXNVCtrl/*",
  "//third_party/libaddressinput/*",

  # "//third_party/libaom/*",  # https://crbug.com/899771
  "//third_party/libc++/*",
  "//third_party/libc++abi/*",
  "//third_party/libdrm/*",
  "//third_party/libgav1/*",
  "//third_party/libjingle/*",

  # "//third_party/libjingle_xmpp/*",  # 30ish errors
  "//third_party/libjpeg/*",

  # "//third_party/libjpeg_turbo/*",  # 3 errors
  # "//third_party/liblouis/*",  # Small errors
  "//third_party/libovr/*",
  "//third_party/libphonenumber/*",
  "//third_party/libpng/*",
  "//third_party/libprotobuf-mutator/*",
  "//third_party/libsecret/*",
  "//third_party/libsrtp/*",
  "//third_party/libsync/*",
  "//third_party/libudev/*",
  "//third_party/libusb/*",

  # "//third_party/libvpx/*",  # Many errors
  "//third_party/libvpx_new/*",
  "//third_party/libwebm/*",

  #"//third_party/libwebp/*",  # Errors: https://crbug.com/800762
  "//third_party/libxml/*",
  "//third_party/libxslt/*",
  "//third_party/libyuv/*",
  "//third_party/llvm/*",
  "//third_party/llvm-bootstrap/*",
  "//third_party/llvm-bootstrap-install/*",
  "//third_party/llvm-build-tools/*",
  "//third_party/logilab/*",
  "//third_party/lss/*",
  "//third_party/lzma_sdk/*",
  "//third_party/markdown/*",
  "//third_party/markupsafe/*",
  "//third_party/material_design_icons/*",
  "//third_party/mesa_headers/*",
  "//third_party/metrics_proto/*",
  "//third_party/minigbm/*",
  "//third_party/minizip/*",
  "//third_party/mocha/*",
  "//third_party/mockito/*",
  "//third_party/modp_b64/*",
  "//third_party/motemplate/*",
  "//third_party/mozilla/*",
  "//third_party/mtpd/*",
  "//third_party/netty4/*",
  "//third_party/netty-tcnative/*",
  "//third_party/node/*",
  "//third_party/nvml/*",
  "//third_party/objenesis/*",
  "//third_party/ocmock/*",
  "//third_party/openh264/*",
  "//third_party/openvr/*",
  "//third_party/opus/*",
  "//third_party/ots/*",

  # "//third_party/pdfium/*",  # 3 errors
  "//third_party/perfetto/*",
  "//third_party/pexpect/*",
  "//third_party/ply/*",
  "//third_party/polymer/*",
  "//third_party/proguard/*",
  "//third_party/protobuf/*",
  "//third_party/pycoverage/*",
  "//third_party/pyelftools/*",
  "//third_party/pyjson5/*",
  "//third_party/pylint/*",
  "//third_party/pymock/*",
  "//third_party/pystache/*",
  "//third_party/py_trace_event/*",
  "//third_party/pywebsocket3/*",
  "//third_party/qcms/*",
  "//third_party/quic_trace/*",
  "//third_party/qunit/*",
  "//third_party/r8/*",
  "//third_party/re2/*",
  "//third_party/requests/*",
  "//third_party/retrolambda/*",
  "//third_party/rnnoise/*",
  "//third_party/robolectric/*",
  "//third_party/s2cellid/*",
  "//third_party/safe_browsing/*",
  "//third_party/scan-build/*",
  "//third_party/shaderc/*",
  "//third_party/simplejson/*",
  "//third_party/sinonjs/*",
  "//third_party/skia/*",
  "//third_party/smhasher/*",
  "//third_party/snappy/*",
  "//third_party/speech-dispatcher/*",
  "//third_party/spirv-cross/*",
  "//third_party/spirv-headers/*",
  "//third_party/sqlite/*",
  "//third_party/sqlite4java/*",
  "//third_party/stp/*",
  "//third_party/sudden_motion_sensor/*",
  "//third_party/swiftshader/*",
  "//third_party/swig/*",
  "//third_party/tcmalloc/*",
  "//third_party/test_fonts/*",
  "//third_party/tlslite/*",
  "//third_party/ub-uiautomator/*",
  "//third_party/unrar/*",
  "//third_party/usb_ids/*",
  "//third_party/usrsctp/*",
  "//third_party/v4l-utils/*",
  "//third_party/valgrind/*",
  "//third_party/vulkan/*",
  "//third_party/vulkan-validation-layers/*",

  # "//third_party/wayland/*",  # Small errors
  "//third_party/wayland-protocols/*",
  "//third_party/wds/*",
  "//third_party/web-animations-js/*",
  "//third_party/webdriver/*",
  "//third_party/webgl/*",
  "//third_party/webpagereplay/*",
  "//third_party/webrtc/*",
  "//third_party/webrtc_overrides/*",
  "//third_party/widevine/*",
  "//third_party/win_build_output/*",
  "//third_party/woff2/*",
  "//third_party/wtl/*",
  "//third_party/xdg-utils/*",
  "//third_party/xstream/*",
  "//third_party/yasm/*",
  "//third_party/zlib/*",
  "//third_party/woff2/*",

  "//tools/*",
  "//ui/*",
  "//url/*",

  #"//v8/*",  # Errors: https://bugs.chromium.org/p/v8/issues/detail?id=7330

  "//weblayer/*",
]

# These are the list of GN files that run exec_script. This whitelist exists
# to force additional review for new uses of exec_script, which is strongly
# discouraged.
#
# PLEASE READ
#
# You should almost never need to add new exec_script calls. exec_script is
# slow, especially on Windows, and can cause confusing effects. Although
# individually each call isn't slow or necessarily very confusing, at the scale
# of our repo things get out of hand quickly. By strongly pushing back on all
# additions, we keep the build fast and clean. If you think you need to add a
# new call, please consider:
#
# - Do not use a script to check for the existence of a file or directory to
#   enable a different mode. Instead, use GN build args to enable or disable
#   functionality and set options. An example is checking for a file in the
#   src-internal repo to see if the corresponding src-internal feature should
#   be enabled. There are several things that can go wrong with this:
#
#    - It's mysterious what causes some things to happen. Although in many cases
#      such behavior can be conveniently automatic, GN optimizes for explicit
#      and obvious behavior so people can more easily diagnose problems.
#
#    - The user can't enable a mode for one build and not another. With GN build
#      args, the user can choose the exact configuration of multiple builds
#      using one checkout. But implicitly basing flags on the state of the
#      checkout, this functionality is broken.
#
#    - It's easy to get stale files. If for example the user edits the gclient
#      to stop checking out src-internal (or any other optional thing), it's
#      easy to end up with stale files still mysteriously triggering build
#      conditions that are no longer appropriate (yes, this happens in real
#      life).
#
# - Do not use a script to iterate files in a directory (glob):
#
#    - This has the same "stale file" problem as the above discussion. Various
#      operations can leave untracked files in the source tree which can cause
#      surprising effects.
#
#    - It becomes impossible to use "git grep" to find where a certain file is
#      referenced. This operation is very common and people really do get
#      confused when things aren't listed.
#
#    - It's easy to screw up. One common case is a build-time script that packs
#      up a directory. The author notices that the script isn't re-run when the
#      directory is updated, so adds a glob so all the files are listed as
#      inputs. This seems to work great... until a file is deleted. When a
#      file is deleted, all the inputs the glob lists will still be up to date
#      and no command-lines will have been changed. The action will not be
#      re-run and the build will be broken. It is possible to get this correct
#      using glob, and it's possible to mess it up without glob, but globs make
#      this situation much easier to create. if the build always lists the
#      files and passes them to a script, it will always be correct.

exec_script_whitelist =
    build_dotfile_settings.exec_script_whitelist +
    angle_dotfile_settings.exec_script_whitelist +
    [
      # Whitelist entries for //build should go into
      # //build/dotfile_settings.gni instead, so that they can be shared
      # with other repos. The entries in this list should be only for files
      # in the Chromium repo outside of //build.
      "//build_overrides/build.gni",

      "//chrome/android/webapk/shell_apk/prepare_upload_dir/BUILD.gn",

      # TODO(dgn): Layer violation but breaks the build otherwise, see
      # https://crbug.com/474506.
      "//clank/java/BUILD.gn",
      "//clank/native/BUILD.gn",

      "//google_apis/BUILD.gn",
      "//printing/BUILD.gn",

      "//remoting/host/installer/linux/BUILD.gn",
      "//remoting/remoting_version.gni",
      "//remoting/host/installer/win/generate_clsids.gni",

      "//tools/grit/grit_rule.gni",
      "//tools/gritsettings/BUILD.gn",
    ]
