123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- # 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.
- import("//chrome/common/features.gni")
- import("//third_party/closure_compiler/compile_js.gni")
- import("//tools/grit/grit_rule.gni")
- import("//tools/grit/preprocess_if_expr.gni")
- import("//tools/polymer/html_to_wrapper.gni")
- import("//tools/typescript/ts_definitions.gni")
- import("//tools/typescript/ts_library.gni")
- import("//ui/file_manager/file_names.gni")
- import("//ui/webui/resources/tools/generate_grd.gni")
- grit("resources") {
- source = "file_manager_resources.grd"
- defines = [ "optimize_webui=$optimize_webui" ]
- outputs = [
- "grit/file_manager_resources.h",
- "grit/file_manager_resources_map.cc",
- "grit/file_manager_resources_map.h",
- "file_manager_resources.pak",
- "file_manager_resources.rc",
- ]
- }
- component("file_manager") {
- sources = [ "file_manager_export.h" ]
- public_deps = [
- ":file_manager_gen_resources",
- ":resources",
- "//base",
- ]
- defines = [ "FILE_MANAGER_IMPLEMENTATION" ]
- }
- group("closure_compile") {
- # Subfolders' closure_compile groups bundle the non-test "module" type-check
- # groups as well as unittests and test_support.
- testonly = true
- deps = [
- "file_manager/background/js:closure_compile",
- "file_manager/common/js:closure_compile",
- "file_manager/foreground/elements:closure_compile",
- "file_manager/foreground/js:closure_compile",
- "file_manager/foreground/js/metadata:closure_compile",
- "file_manager/foreground/js/ui:closure_compile",
- "file_manager/foreground/js/ui/banners:closure_compile",
- "image_loader:closure_compile",
- "integration_tests:closure_compile",
- "integration_tests/file_manager:closure_compile",
- ]
- }
- group("unit_test_data") {
- testonly = true
- deps = [
- "file_manager/background/js:js_test_type_check",
- "file_manager/common/js:js_test_type_check",
- "file_manager/foreground/elements:js_test_type_check",
- "file_manager/foreground/js:js_test_type_check",
- "file_manager/foreground/js/metadata:js_test_type_check",
- "file_manager/foreground/js/ui:js_test_type_check",
- "file_manager/foreground/js/ui/banners:js_test_type_check",
- "image_loader:js_test_type_check",
- ]
- data_deps = [ "image_loader:copy_from_filesapp" ]
- }
- preprocess_folder = "$target_gen_dir/preprocessed"
- # Move files to the preprocessed folder to combine all resources in the same
- # folder for JS bundling with rollup.
- # This is for files direct from the src/: input_folder="./".
- preprocess_if_expr("preprocess_static") {
- in_folder = "./"
- out_folder = preprocess_folder
- out_manifest = "$target_gen_dir/manifest_preprocess_static.json"
- in_files = static_js_files
- deps = [
- "//ui/file_manager/file_manager/background/js:js_modules",
- "//ui/file_manager/file_manager/background/js:main_background",
- "//ui/file_manager/file_manager/common/js:js_modules",
- "//ui/file_manager/file_manager/foreground/elements:web_components",
- "//ui/file_manager/file_manager/foreground/js:deferred_elements",
- "//ui/file_manager/file_manager/foreground/js:main",
- ]
- }
- preprocess_if_expr("preprocess_static_image_loader") {
- in_folder = "."
- out_folder = preprocess_folder
- out_manifest = "$target_gen_dir/manifest_preprocess_static_image_loader.json"
- in_files = image_loader_static_js_files
- deps = [
- "//ui/file_manager/image_loader:background",
- "//ui/file_manager/image_loader:js_modules",
- ]
- }
- # This is for files that are generated in "gen/": input_folder=target_gen_dir.
- preprocess_if_expr("preprocess_generated") {
- in_folder = target_gen_dir
- out_folder = preprocess_folder
- out_manifest = "$target_gen_dir/manifest_preprocess_generated.json"
- in_files = generated_js_files + ts_generated_templates
- deps = [
- ":html_wrapper_files",
- "//ui/file_manager/base/gn:file_types_data_gen_js",
- "//ui/file_manager/file_manager/foreground/elements:elements",
- "//ui/file_manager/file_manager/foreground/elements:web_components",
- "//ui/file_manager/file_manager/foreground/js/ui/banners:web_components",
- ]
- }
- preprocess_if_expr("preprocess_generated_image_loader") {
- in_folder = target_gen_dir
- out_folder = preprocess_folder
- out_manifest =
- "$target_gen_dir/manifest_preprocess_generated_image_loader.json"
- in_files = image_loader_generated_js_files
- deps = [ "//ui/file_manager/image_loader:copy_from_filesapp" ]
- }
- ts_library("build_ts") {
- root_dir = preprocess_folder
- out_dir = "$target_gen_dir/tsc"
- tsconfig_base = "tsconfig_base.json"
- composite = true
- extra_deps = [
- ":copy_definition",
- ":copy_fmp",
- ":copy_ts",
- ":generate_definitions",
- ":preprocess_generated",
- ":preprocess_generated_image_loader",
- ":preprocess_static",
- ":preprocess_static_image_loader",
- ]
- deps = [ "//ui/webui/resources:library" ]
- in_files =
- static_js_files + generated_js_files + ts_files + ts_generated_templates +
- image_loader_static_js_files + image_loader_generated_js_files
- definitions = [
- "$preprocess_folder/file_manager/externs/file_manager_private.js",
- "$target_gen_dir/file_manager/definitions/file_manager.d.ts",
- "$target_gen_dir/file_manager/externs/volume_manager.d.ts",
- ]
- }
- ts_library("test_build_ts") {
- testonly = true
- root_dir = preprocess_folder
- out_dir = "$target_gen_dir/tsc"
- tsconfig_base = "tsconfig_base.json"
- in_files = ts_test_files
- path_mappings = [
- # for chai_assert.js.
- "chrome://webui-test/*|" +
- rebase_path("$root_gen_dir/chrome/test/data/webui/tsc/*",
- target_gen_dir),
- ]
- definitions = [
- "$preprocess_folder/file_manager/externs/file_manager_private.js",
- "$target_gen_dir/file_manager/definitions/file_error.d.ts",
- "$target_gen_dir/file_manager/definitions/file_manager.d.ts",
- "$target_gen_dir/file_manager/externs/volume_manager.d.ts",
- ]
- deps = [ ":build_ts" ]
- extra_deps = [
- ":copy_definition",
- ":copy_fmp",
- ":copy_ts",
- ":generate_definitions",
- ]
- }
- ts_definitions("generate_definitions") {
- root_dir = "."
- out_dir = target_gen_dir
- js_files = [
- "file_manager/common/js/volume_manager_types.js",
- "file_manager/externs/entry_location.js",
- "file_manager/externs/files_app_entry_interfaces.js",
- "file_manager/externs/volume_info.js",
- "file_manager/externs/volume_info_list.js",
- "file_manager/externs/volume_manager.js",
- ]
- }
- # Copy definition files to GEN folder, so they can import relatively the
- # generated definitions.
- copy("copy_definition") {
- sources = [
- "file_manager/definitions/file_error.d.ts",
- "file_manager/definitions/file_manager.d.ts",
- ]
- outputs = [ "$target_gen_dir/{{source_target_relative}}" ]
- }
- copy("copy_ts") {
- sources = ts_files + ts_test_files
- outputs = [ "$preprocess_folder/{{source_target_relative}}" ]
- }
- copy("copy_fmp") {
- sources = [ "//third_party/closure_compiler/externs/file_manager_private.js" ]
- outputs = [ "$preprocess_folder/file_manager/externs/{{source_file_part}}" ]
- }
- js_library("js_from_ts") {
- sources = []
- foreach(_t, ts_files) {
- sources += [ "$target_gen_dir/tsc/" + string_replace(_t, ".ts", ".js") ]
- }
- extra_deps = [ ":build_ts" ]
- }
- grd_prefix = "file_manager_gen"
- generated_grd = "$target_gen_dir/${grd_prefix}_resources.grd"
- generate_grd("build_grd") {
- out_grd = generated_grd
- grdp_files = [ "$target_gen_dir/file_manager/static_resources.grdp" ]
- deps = [
- ":build_ts",
- "file_manager:build_static_grdp",
- "//ui/file_manager/image_loader:build",
- ]
- input_files_base_dir = rebase_path(target_gen_dir, root_build_dir)
- input_files = [ "image_loader/background.rollup.js" ]
- resource_path_rewrites =
- [ "image_loader/background.rollup.js|image_loader/background.js" ]
- if (optimize_webui) {
- input_files += [
- "file_manager/background/js/main_background.rollup.js",
- "file_manager/background/js/runtime_loaded_test_util.rollup.js",
- "file_manager/background/js/shared.rollup.js",
- "file_manager/foreground/js/deferred_elements.rollup.js",
- "file_manager/foreground/js/main.rollup.js",
- "file_manager/foreground/js/metadata_dispatcher.rollup.js",
- "file_manager/foreground/js/shared.rollup.js",
- "image_loader/image_orientation.js",
- "image_loader/lru_cache.js",
- "file_manager/common/js/file_types_data.js",
- ]
- resource_path_rewrites += [
- "file_manager/background/js/main_background.rollup.js|file_manager/background/js/main_background.js",
- "file_manager/background/js/runtime_loaded_test_util.rollup.js|file_manager/background/js/runtime_loaded_test_util.js",
- "file_manager/foreground/js/deferred_elements.rollup.js|file_manager/foreground/js/deferred_elements.js",
- "file_manager/foreground/js/main.rollup.js|file_manager/foreground/js/main.js",
- "file_manager/foreground/js/metadata_dispatcher.rollup.js|file_manager/foreground/js/metadata/metadata_dispatcher.js",
- ]
- deps += [
- "//ui/file_manager/file_manager/background/js:build",
- "//ui/file_manager/file_manager/foreground/elements:elements",
- "//ui/file_manager/file_manager/foreground/js:build",
- "//ui/file_manager/file_manager/foreground/js:build_worker",
- ]
- } else {
- manifest_files =
- filter_include(get_target_outputs(":build_ts"), [ "*.manifest" ])
- }
- }
- # Resources for the JS modules.
- grit("file_manager_gen_resources") {
- defines = chrome_grit_defines
- # These arguments are needed since the grd is generated at build time.
- enable_input_discovery_for_gn_analyze = false
- source = generated_grd
- deps = [ ":build_grd" ]
- outputs = [
- "grit/file_manager_gen_resources.h",
- "grit/file_manager_gen_resources_map.cc",
- "grit/file_manager_gen_resources_map.h",
- "file_manager_gen_resources.pak",
- ]
- output_dir = target_gen_dir
- }
- html_to_wrapper("html_wrapper_files") {
- in_files = ts_templates
- }
- # GRD for test files.
- generate_grd("build_tests_grdp") {
- testonly = true
- grd_prefix = "file_manager_test"
- out_grd = "$target_gen_dir/tests_resources.grdp"
- input_files_base_dir = rebase_path(".", "//")
- input_files = unittest_files
- }
- # GRD for the actual application files that are processed by TS compiler.
- generate_grd("build_tests_gen_grdp") {
- testonly = true
- grd_prefix = "file_manager_test"
- out_grd = "$target_gen_dir/tests_gen_resources.grdp"
- manifest_files =
- filter_include(get_target_outputs(":build_ts"), [ "*.manifest" ]) +
- filter_include(get_target_outputs(":test_build_ts"), [ "*.manifest" ])
- deps = [
- ":build_ts",
- ":test_build_ts",
- ]
- }
|