# Copyright 2014 The Chromium Authors
# 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/ash/components/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",
"initialize_mojo_core.h",
]
public_app_shared_public_deps = [
"//base",
"//content:export",
"//third_party/abseil-cpp:absl",
]
public_app_shared_deps = [
"//base:i18n",
"//content/app",
"//content/public/common:common_sources",
"//content/public/gpu:gpu_sources",
"//content/public/renderer:renderer_sources",
"//content/public/utility:utility_sources",
]
if (is_win) {
public_app_shared_sources += [ "sandbox_helper_win.h" ]
public_app_shared_deps += [ "//sandbox/win:common" ]
}
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" ]
public_deps = public_app_shared_public_deps
deps =
public_app_shared_deps + [ "//content/public/browser:browser_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" ]
public_deps = public_app_shared_public_deps
deps = public_app_shared_deps + [
"//content/public/browser",
"//content/public/common",
]
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",
]
}
}