blob: 0f013c2e7c4498f4a70a2ba353afc1fae69a5fb2 [file] [log] [blame]
# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//ash/webui/camera_app_ui/resources/css/css.gni")
import("//ash/webui/camera_app_ui/resources/images/images.gni")
import("//ash/webui/camera_app_ui/resources/js/js.gni")
import("//ash/webui/camera_app_ui/resources/sounds/sounds.gni")
import("//ash/webui/camera_app_ui/resources/views/views.gni")
import("//build/config/chromeos/ui_mode.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//ui/webui/resources/tools/generate_grd.gni")
assert(is_chromeos_ash, "Camera App is ash-chrome only")
static_library("camera_app_ui") {
sources = [
"camera_app_helper_impl.cc",
"camera_app_helper_impl.h",
"camera_app_ui.cc",
"camera_app_ui.h",
"camera_app_ui_delegate.h",
"camera_app_untrusted_ui.cc",
"camera_app_untrusted_ui.h",
"resources.h",
"url_constants.cc",
"url_constants.h",
]
public_deps = [
"resources/strings",
"//ash/webui/resources:camera_app_resources",
]
deps = [
":document_scanning",
":mojo_bindings",
":mojo_bindings_js",
":window_managemet",
"//ash/public/cpp",
"//ash/webui/system_apps/public:system_web_app_config",
"//ash/webui/web_applications",
"//chromeos/utils",
"//components/arc",
"//content/public/browser",
"//content/public/common",
"//media/capture:capture_lib",
"//mojo/public/cpp/bindings",
"//mojo/public/js:resources_grit",
"//net",
"//services/network/public/mojom",
"//ui/webui",
]
}
source_set("window_managemet") {
sources = [
"camera_app_window_manager.cc",
"camera_app_window_manager.h",
"camera_app_window_state_controller.cc",
"camera_app_window_state_controller.h",
]
deps = [
":mojo_bindings",
"//ash/public/cpp",
"//base",
"//content/public/browser",
"//mojo/public/cpp/bindings",
"//ui/aura",
"//ui/views",
]
}
source_set("document_scanning") {
sources = [
"document_scanner_installer.cc",
"document_scanner_installer.h",
"document_scanner_service_client.cc",
"document_scanner_service_client.h",
]
public_deps = [ "//dbus" ]
deps = [
"//base",
"//chromeos/ash/components/dbus/dlcservice",
"//chromeos/ash/components/dbus/dlcservice:dlcservice_proto",
"//chromeos/services/machine_learning/public/cpp",
"//chromeos/services/machine_learning/public/mojom",
"//components/device_event_log",
"//mojo/public/cpp/bindings",
"//ui/gfx/geometry",
]
}
source_set("unit_tests") {
testonly = true
sources = [ "camera_app_window_manager_unittest.cc" ]
deps = [
":window_managemet",
"//base",
"//base/test:test_support",
"//content/test:test_support",
"//testing/gmock",
"//testing/gtest",
"//ui/views",
"//ui/views:test_support",
]
}
mojom("mojo_bindings") {
sources = [ "camera_app_helper.mojom" ]
deps = [
"//ash/components/arc/mojom:camera_intent",
"//chromeos/services/machine_learning/public/mojom:document_scanner_param_types",
"//ui/gfx/geometry/mojom",
"//url/mojom:url_mojom_gurl",
]
webui_module_path = "/ash/webui/camera_app_ui"
}
cca_grd_prefix = "ash_camera_app"
resources_grd_file = "$target_gen_dir/${cca_grd_prefix}_resources.grd"
mojo_grdp_file = "$target_gen_dir/mojo.grdp"
generated_grdp_file = "$target_gen_dir/generated.grdp"
generate_grd("build_grd") {
deps = [
":build_generated_grdp",
":build_mojo_grdp",
"resources/js:build_ts",
]
grd_prefix = cca_grd_prefix
out_grd = resources_grd_file
grdp_files = [
mojo_grdp_file,
generated_grdp_file,
]
manifest_files = [ "$target_gen_dir/resources/js/build_ts.manifest" ]
input_files_base_dir = rebase_path("resources", "//")
input_files = []
# CSS Files.
foreach(css, css_files) {
input_files += [ "css/$css" ]
}
# View Files.
foreach(view, view_files) {
input_files += [ "views/$view" ]
}
# Image Files.
foreach(image, in_app_images) {
input_files += [ "images/$image" ]
}
foreach(image, icon_images) {
input_files += [ "images/$image" ]
}
# JS Files.
foreach(js, no_compile_js_files) {
input_files += [ "js/$js" ]
}
foreach(wasm, wasm_files) {
input_files += [ "js/$wasm" ]
}
# Sound Files.
foreach(sound, sound_files) {
input_files += [ "sounds/$sound" ]
}
# Other Files.
input_files += [
# We put test.html outside of views/ directory to avoid test page and the
# main window sharing the same shelf icon.
"test/test.html",
]
}
generate_grd("build_mojo_grdp") {
deps = [
"//ash/components/arc/mojom:camera_intent_js",
"//ash/webui/camera_app_ui:mojo_bindings_js",
"//chromeos/services/machine_learning/public/mojom:document_scanner_param_types_js",
"//media/capture/mojom:image_capture_js",
"//media/capture/video/chromeos/mojom:cros_camera_js",
]
grd_prefix = "ash_camera_app_js_mojo"
input_files_base_dir = rebase_path("$root_gen_dir/", root_build_dir)
input_files = [
"mojom-webui/ash/components/arc/mojom/camera_intent.mojom-webui.js",
"mojom-webui/ash/webui/camera_app_ui/camera_app_helper.mojom-webui.js",
"mojom-webui/chromeos/services/machine_learning/public/mojom/document_scanner_param_types.mojom-webui.js",
"mojom-webui/media/capture/mojom/image_capture.mojom-webui.js",
"mojom-webui/media/capture/video/chromeos/mojom/camera3.mojom-webui.js",
"mojom-webui/media/capture/video/chromeos/mojom/camera_app.mojom-webui.js",
"mojom-webui/media/capture/video/chromeos/mojom/camera_common.mojom-webui.js",
"mojom-webui/media/capture/video/chromeos/mojom/camera_metadata.mojom-webui.js",
"mojom-webui/media/capture/video/chromeos/mojom/camera_metadata_tags.mojom-webui.js",
]
out_grd = mojo_grdp_file
}
generate_grd("build_generated_grdp") {
deps = [ "//ash/webui/camera_app_ui/resources/js:gen_preload_images_js" ]
grd_prefix = "ash_camera_app_js"
input_files_base_dir =
rebase_path("$root_gen_dir/ash/webui/camera_app_ui/resources",
root_build_dir)
input_files = [ "js/preload_images.js" ]
out_grd = generated_grdp_file
}