blob: 8e343140b9f511fad94fda46f1d5bf1233e58838 [file] [log] [blame]
# Copyright 2019 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.
import("//chrome/browser/resources/tools/optimize_webui.gni")
import("//chromeos/components/web_applications/system_apps.gni")
import("//third_party/closure_compiler/compile_js.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
stage_folder = "$target_gen_dir/stage"
# Move files to the stage folder to combine all resources in the same folder for
# JS bundling with rollup.
# This is for files direct from the src/: input_folder="./".
copy("stage_static") {
sources = [
"../../../../../ui/file_manager/image_loader/piex_loader.js",
"//chromeos/components/system_apps/public/js/sandboxed_load_time_data.js",
"app_context_test_support.js",
"error_reporter.js",
"launch.js",
"mojo_api_bootstrap.js",
"piex_module.js",
"piex_module_loader.js",
"receiver.js",
]
outputs = [ stage_folder + "/{{source_file_part}}" ]
}
# This is for files that are generated in "gen/".
copy("stage_generated") {
sources = [
"$target_gen_dir/../../../system_apps/public/js/message_pipe.m.js",
"$target_gen_dir/../../media_app_ui.mojom-lite.js",
"$target_gen_dir/message_types.m.js",
]
outputs = [ stage_folder + "/{{source_file_part}}" ]
deps = [
":modulize",
"//chromeos/components/media_app_ui:mojo_bindings_js",
"//chromeos/components/system_apps/public/js:modulize",
]
}
optimize_webui("launch_rollup") {
host = "media-app"
js_out_files = [ "launch.rollup.js" ]
js_module_in_files = [ "launch.js" ]
input = rebase_path(stage_folder, root_build_dir)
deps = [
":stage_generated",
":stage_static",
]
}
optimize_webui("receiver_rollup") {
host = "media-app"
js_out_files = [ "receiver.rollup.js" ]
js_module_in_files = [ "receiver.js" ]
input = rebase_path(stage_folder, root_build_dir)
deps = [
":stage_generated",
":stage_static",
]
}
optimize_webui("piex_rollup") {
host = "media-app"
js_out_files = [ "piex_module.rollup.js" ]
js_module_in_files = [ "piex_module.js" ]
input = rebase_path(stage_folder, root_build_dir)
deps = [
":stage_generated",
":stage_static",
]
}
js_modulizer("modulize") {
input_files = [ "message_types.js" ]
}
# Build rules below here are just used for typechecking and don't influence what
# is shipped to resources.pak.
media_closure_flags = system_app_closure_flags_strict + [
"hide_warnings_for=chromeos/components/media_app_ui/media_app_ui.mojom-lite-for-compile.js",
# For all js module in source tree.
"js_module_root=" + rebase_path(".", root_build_dir),
# For all dynamic generated js module.
"js_module_root=" +
rebase_path(target_gen_dir, root_build_dir),
]
group("closure_compile") {
deps = [
":closure_compile_app",
":closure_compile_index",
":closure_compile_piex_module",
]
}
js_type_check("closure_compile_index") {
closure_flags = media_closure_flags
deps = [ ":launch" ]
}
js_type_check("closure_compile_app") {
closure_flags = media_closure_flags
deps = [ ":receiver" ]
}
js_type_check("closure_compile_piex_module") {
closure_flags = media_closure_flags
deps = [ ":piex_module" ]
}
js_library("app_context_test_support") {
}
js_library("launch") {
externs_list = [
"//chromeos/components/web_applications/externs/file_handling.externs.js",
"dom_draft.externs.js",
# The privileged context can't access the app, but shares struct definitions
# passed over postMessage.
"media_app.externs.js",
]
deps = [
":app_context_test_support",
":error_reporter",
":message_types.m",
":mojo_api_bootstrap",
"//chromeos/components/system_apps/public/js:message_pipe.m",
]
}
js_library("message_types") {
}
js_library("message_types.m") {
sources = [ "$root_gen_dir/chromeos/components/media_app_ui/resources/js/message_types.m.js" ]
extra_deps = [ ":modulize" ]
}
js_library("error_reporter") {
externs_list = [ "$externs_path/crash_report_private.js" ]
}
js_library("piex_module_loader") {
}
js_library("piex_module") {
deps = [ "//ui/file_manager/image_loader:piex_loader" ]
}
js_library("receiver") {
externs_list = [ "media_app.externs.js" ]
deps = [
":app_context_test_support",
":message_types.m",
":piex_module_loader",
"//chromeos/components/system_apps/public/js:message_pipe.m",
"//chromeos/components/system_apps/public/js:sandboxed_load_time_data",
]
}
js_library("mojo_api_bootstrap") {
deps = [
"//chromeos/components/media_app_ui:mojo_bindings_js_library_for_compile",
]
}