| # Copyright 2016 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/cast.gni") |
| import("//build/config/chrome_build.gni") |
| |
| declare_args() { |
| # `enable_extensions` controls whether the full and stable extensions platform |
| # is compiled. |
| enable_extensions = !is_android && !is_ios && !is_castos && !is_fuchsia |
| |
| # `enable_desktop_android_extensions` is an experimental flag used in |
| # prototypes of desktop-focused android-powered builds. This is very much |
| # in-development, non-stable, and likely to crash at any given moment. |
| # |
| # Introducing a separate flag like this has the unfortunate effect of leading |
| # to a lot of `if BUILDFLAG(ENABLE_EXTENSIONS)` checks in extensions code |
| # itself, since those checks are instead the equivalent of |
| # `if BUILDFLAG(ENABLE_FULL_EXTENSIONS_SYSTEM)`. However, we don't want to |
| # change the stable, production-utilized `enable_extensions` flag for this |
| # experimental build. |
| # |
| # As the experimental build progresses, there should be fewer of those |
| # checks littered around the extensions codebase, since more and more of |
| # the extensions code will be included in the desktop android variant. |
| # |
| # TODO(https://crbug.com/356905053): Continue expanding the scope of |
| # enable_desktop_android_extensions. |
| enable_desktop_android_extensions = is_desktop_android |
| } |
| |
| # Note: GN forbids relying on args from the same declare_args() block, so we |
| # need this separate from the block above. |
| declare_args() { |
| # A control for whether support for platform apps should be compiled into the |
| # browser. |
| # TODO(https://crbug.com/41407868): This doesn't belong here; extensions code |
| # shouldn't rely on platform apps at all. But at least this lets it be |
| # toggled / if-def'd. |
| enable_platform_apps = enable_extensions |
| |
| # Whether the core extensions system is enabled. This prevents many callsites |
| # from needing blocks for |
| # `if (enable_extensions || enable_desktop_android_extensions)`, since the |
| # core handling in each of these implementations is similar. |
| enable_extensions_core = |
| enable_extensions || enable_desktop_android_extensions |
| } |