| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # App different than the regular content subcomponents (see comments in |
| # //content/BUILD.gn) because it has to support the browser/child process split |
| # (the "both" target include both browser and child process files and is used |
| # for testing). |
| # |
| # In non-component mode, browser, child, and both all follow the same structure: |
| # foo -> |
| # //content/public/app:child (group) -> |
| # //content/public/app:child_sources (source set) -> |
| # //content/app:child (source set) |
| |
| # In component mode, content is linked as one big turd so there is only one |
| # app target containing sources ("both") and the other ones forward to it: |
| # foo -> |
| # //content/public/app:child (group; "browser" and "both" ones look the same) |
| # //content (shared library) -> |
| # //content/public/app:app_sources (source set) |
| |
| import("//build/config/chrome_build.gni") |
| import("//build/config/ui.gni") |
| import("//chromeos/assistant/assistant.gni") |
| import("//tools/v8_context_snapshot/v8_context_snapshot.gni") |
| import("//ui/base/ui_features.gni") |
| |
| public_app_shared_sources = [ |
| "content_jni_onload.h", |
| "content_main.h", |
| "content_main_delegate.cc", |
| "content_main_delegate.h", |
| "content_main_runner.h", |
| "sandbox_helper_win.h", |
| ] |
| |
| public_app_shared_deps = [ |
| "//base", |
| "//base:i18n", |
| "//content:export", |
| "//content/public/common:common_sources", |
| "//services/service_manager", |
| "//services/service_manager/embedder", |
| "//services/service_manager/public/cpp", |
| ] |
| |
| if (is_component_build) { |
| source_set("app_sources") { |
| # Only the main content shared library can pull this in. |
| visibility = [ "//content:content" ] |
| |
| sources = public_app_shared_sources |
| |
| configs += [ "//content:content_implementation" ] |
| |
| deps = public_app_shared_deps + [ |
| "//content/app", |
| "//content/public/browser:browser_sources", |
| "//content/public/gpu:gpu_sources", |
| "//content/public/renderer:renderer_sources", |
| "//content/public/utility:utility_sources", |
| ] |
| |
| allow_circular_includes_from = [ |
| # This target is a pair with the non-public version. They always go |
| # together and include headers from each other. |
| "//content/app", |
| ] |
| } |
| |
| # This just forwards to content, which in turn depends on "app_sources". |
| group("app") { |
| public_deps = [ "//content" ] |
| } |
| } else { |
| source_set("app") { |
| sources = public_app_shared_sources |
| configs += [ "//content:content_implementation" ] |
| deps = public_app_shared_deps + [ |
| "//content/app", |
| "//content/public/browser", |
| "//content/public/common", |
| "//content/public/gpu:gpu_sources", |
| "//content/public/renderer:renderer_sources", |
| "//content/public/utility:utility_sources", |
| ] |
| |
| allow_circular_includes_from = [ |
| # This target is a pair with the non-public version. They always go |
| # together and include headers from each other. |
| "//content/app", |
| ] |
| } |
| } |