blob: 89c9c6775b245d03f9fa3ed1c4b2372a203316c4 [file] [log] [blame]
# Copyright 2018 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.
# TODO(https://crbug.com/1164001): When a directory which contains WebUIs grd
# moves to ash, a target should be moved to //ash/webui/resources/BUILD.gn as
# well.
import("//chromeos/assistant/assistant.gni")
import("//chromeos/components/eche_app_ui/eche_app_ui.gni")
import("//chromeos/components/projector_app/projector_app.gni")
import("//tools/grit/grit_rule.gni")
assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
grit("resources") {
source = "chromeos_resources.grd"
outputs = [
"grit/chromeos_resources.h",
"grit/chromeos_resources_map.cc",
"grit/chromeos_resources_map.h",
"chromeos_resources.pak",
]
output_dir = "$root_gen_dir/chromeos"
defines = [
"enable_cros_libassistant=$enable_cros_libassistant",
"enable_cros_eche_app=$enable_cros_eche_app",
]
grit_flags = [
"-E",
"mojom_root=" + rebase_path(root_gen_dir, root_build_dir),
]
deps = [
"//chromeos/components/multidevice/mojom:mojom_js",
"//chromeos/language/public/mojom:mojom_js",
"//chromeos/services/bluetooth_config/public/mojom:mojom_js",
"//chromeos/services/cellular_setup/public/mojom:mojom_js",
"//chromeos/services/device_sync/public/mojom:mojom_js",
# Generated ml service js bindings are required by external clients, the
# clients are not found within Chromium. The clients pull the generated
# js bindings as part of their build process.
"//chromeos/services/machine_learning/public/mojom:mojom_js",
"//chromeos/services/multidevice_setup/public/mojom:mojom_js",
"//chromeos/services/network_config/public/mojom:mojom_js",
"//chromeos/services/network_health/public/mojom:mojom_js",
]
}
# Convenience template for WebUIs using generate_grd.
# TODO(calamity): Further deduplicate with non-generated grit targets.
template("chromeos_generated_grit") {
grit(target_name) {
forward_variables_from(invoker,
[
"deps",
"source",
])
# These arguments are needed since the grd is generated at build time.
enable_input_discovery_for_gn_analyze = false
outputs = [
"chromeos_$target_name.pak",
"grit/chromeos_$target_name.h",
"grit/chromeos_${target_name}_map.cc",
"grit/chromeos_${target_name}_map.h",
]
output_dir = "$root_gen_dir/chromeos"
}
}
# Resources used by chrome://camera-app.
chromeos_generated_grit("camera_app_resources") {
source = "$root_gen_dir/chromeos/components/camera_app_ui/chromeos_camera_app_resources.grd"
deps = [ "//chromeos/components/camera_app_ui:build_grd" ]
}
# Resources used by chrome://eche-app
chromeos_generated_grit("eche_app_resources") {
source = "$root_gen_dir/chromeos/components/eche_app_ui/chromeos_eche_app_resources.grd"
deps = [ "//chromeos/components/eche_app_ui:build_grd" ]
}
# Resources used by chrome://personalization SWA.
chromeos_generated_grit("personalization_app_resources") {
source = "$root_gen_dir/chromeos/components/personalization_app/resources/chromeos_personalization_app_resources.grd"
deps = [ "//chromeos/components/personalization_app/resources:build_grd" ]
}
# Resources used by chrome-untrusted://projector SWA.
chromeos_generated_grit("projector_app_untrusted_resources") {
source = "$root_gen_dir/chromeos/components/projector_app/resources/chromeos_projector_app_untrusted_resources.grd"
deps = [ "//chromeos/components/projector_app/resources:build_untrusted_grd" ]
}
# Resources used by chrome://projector SWA.
chromeos_generated_grit("projector_app_trusted_resources") {
source = "$root_gen_dir/chromeos/components/projector_app/resources/chromeos_projector_app_trusted_resources.grd"
deps = [ "//chromeos/components/projector_app/resources:build_trusted_grd" ]
}
# Resources automatically served by the chrome-untrusted://projector bundle, obtained via DEPS.
grit("projector_app_bundle_resources") {
if (enable_cros_projector_app) {
# Obtained via an internal CIPD package in src/DEPS.
source = "../components/projector_app/resources/prod/projector_app_bundle_resources.grd"
} else {
source = "../components/projector_app/resources/mock/projector_app_bundle_mock_resources.grd"
}
use_brotli = true
outputs = [
"grit/chromeos_projector_app_bundle_resources.h",
"grit/chromeos_projector_app_bundle_resources_map.cc",
"grit/chromeos_projector_app_bundle_resources_map.h",
"chromeos_projector_app_bundle_resources.pak",
]
output_dir = "$root_gen_dir/chromeos"
}
# Resources used by chrome://connectivity-diagnostics
grit("connectivity_diagnostics_resources") {
# These arguments are needed since the grd is generated at build time.
enable_input_discovery_for_gn_analyze = false
conn_diag_gen_dir =
"$root_gen_dir/chromeos/components/connectivity_diagnostics/resources"
source = "$conn_diag_gen_dir/connectivity_diagnostics_resources.grd"
deps =
[ "//chromeos/components/connectivity_diagnostics/resources:build_grd" ]
outputs = [
"connectivity_diagnostics_resources.pak",
"grit/connectivity_diagnostics_resources.h",
"grit/connectivity_diagnostics_resources_map.cc",
"grit/connectivity_diagnostics_resources_map.h",
]
output_dir = "$root_gen_dir/chromeos"
}
# Resources automatically served by the chrome://eche-app bundle, obtained via DEPS.
grit("eche_bundle_resources") {
# Obtained via an internal CIPD package in src/DEPS.
if (enable_cros_eche_app) {
# Obtained via an internal CIPD package in src/DEPS.
source =
"../components/eche_app_ui/resources/prod/eche_bundle_resources.grd"
} else {
source = "../components/eche_app_ui/resources/mock/eche_bundle_mock_resources.grd"
}
use_brotli = true
outputs = [
"grit/chromeos_eche_bundle_resources.h",
"grit/chromeos_eche_bundle_resources_map.cc",
"grit/chromeos_eche_bundle_resources_map.h",
"chromeos_eche_bundle_resources.pak",
]
output_dir = "$root_gen_dir/chromeos"
}