blob: 62c8ba1ad767456f7c474576c6c75e55628f4ef2 [file] [log] [blame]
Avi Drissman3e1a26c2022-09-15 20:26:031# Copyright 2020 The Chromium Authors
Luciano Pachecod4a896072020-01-14 11:07:502# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Luciano Pacheco23364a22023-10-17 01:24:345import("//tools/typescript/ts_library.gni")
Luciano Pachecod4a896072020-01-14 11:07:506
Luciano Pachecoa2319c02023-10-17 00:59:527preprocess_folder = "$target_gen_dir/preprocessed"
Luciano Pacheco23364a22023-10-17 01:24:348tsc_folder = "$target_gen_dir/tsc"
Luciano Pachecoa2319c02023-10-17 00:59:529
Luciano Pachecoa2319c02023-10-17 00:59:5210js_files = [
Luciano Pachecoa2319c02023-10-17 00:59:5211 "element_object.js",
Luciano Pachecoa2319c02023-10-17 00:59:5212 "key_modifiers.js",
Luciano Pachecoa2319c02023-10-17 00:59:5213 "remote_call.js",
14 "test_util.js",
Luciano Pachecoa2319c02023-10-17 00:59:5215
16 # File Manager.
Luciano Pachecoa2319c02023-10-17 00:59:5217 "file_manager/background.js",
18 "file_manager/breadcrumbs.js",
Luciano Pachecoa2319c02023-10-17 00:59:5219 "file_manager/context_menu.js",
20 "file_manager/copy_between_windows.js",
21 "file_manager/create_new_folder.js",
22 "file_manager/crostini.js",
23 "file_manager/directory_tree.js",
24 "file_manager/directory_tree_context_menu.js",
25 "file_manager/dlp.js",
26 "file_manager/dlp_enterprise_connectors.js",
27 "file_manager/drive_specific.js",
28 "file_manager/file_dialog.js",
29 "file_manager/file_display.js",
30 "file_manager/file_list.js",
31 "file_manager/file_transfer_connector.js",
32 "file_manager/files_tooltip.js",
33 "file_manager/folder_shortcuts.js",
34 "file_manager/format_dialog.js",
35 "file_manager/gear_menu.js",
36 "file_manager/grid_view.js",
37 "file_manager/guest_os.js",
38 "file_manager/holding_space.js",
39 "file_manager/install_linux_package_dialog.js",
40 "file_manager/keyboard_operations.js",
41 "file_manager/metadata.js",
42 "file_manager/metrics.js",
43 "file_manager/my_files.js",
44 "file_manager/navigation.js",
45 "file_manager/office.js",
46 "file_manager/open_audio_media_app.js",
47 "file_manager/open_files_in_web_drive.js",
48 "file_manager/open_image_media_app.js",
49 "file_manager/open_media_app.js",
50 "file_manager/open_sniffed_files.js",
51 "file_manager/open_video_media_app.js",
52 "file_manager/providers.js",
53 "file_manager/quick_view.js",
54 "file_manager/recents.js",
55 "file_manager/restore_prefs.js",
56 "file_manager/search.js",
57 "file_manager/share.js",
58 "file_manager/share_and_manage_dialog.js",
59 "file_manager/sort_columns.js",
60 "file_manager/tab_index.js",
61 "file_manager/tasks.js",
62 "file_manager/test_data.js",
63 "file_manager/toolbar.js",
64 "file_manager/transfer.js",
65 "file_manager/trash.js",
66 "file_manager/traverse.js",
67 "file_manager/zip_files.js",
68
69 # Page Objects.
70 "file_manager/page_objects/directory_tree.js",
71]
72
Luciano Pacheco23364a22023-10-17 01:24:3473ts_files = [
Luciano Pacheco684e7a62024-01-24 01:31:0174 "file_manager/android_photos.ts",
Luciano Pachecob1272ad2024-01-22 02:22:1475 "testcase.ts",
76
Luciano Pacheco23364a22023-10-17 01:24:3477 "file_manager/choose_entry.ts",
78 "file_manager/choose_entry_const.ts",
79]
80
Luciano Pachecoa2319c02023-10-17 00:59:5281# TS/JS files.
82copy("copy_src") {
Luciano Pacheco23364a22023-10-17 01:24:3483 sources = js_files + ts_files
Luciano Pachecoa2319c02023-10-17 00:59:5284 outputs = [ "$preprocess_folder/{{source_target_relative}}" ]
85}
86
Luciano Pacheco63be2c42024-02-01 06:50:3087copy("from_files_app") {
88 sources = [ "../file_manager/common/js/shared_types.ts" ]
89 outputs = [ "$preprocess_folder/prod/file_manager/{{source_file_part}}" ]
90 deps = [ "//ui/file_manager:generate_definitions" ]
91}
92
Luciano Pachecoa2319c02023-10-17 00:59:5293# All non JS/TS files.
94copy("copy_app") {
95 sources = [
96 "file_manager/background.html",
97 "file_manager/choose_entry.html",
98 "file_manager_test_manifest.json",
99 ]
Luciano Pacheco23364a22023-10-17 01:24:34100 outputs = [ "$tsc_folder/{{source_target_relative}}" ]
101}
102
103ts_library("build_ts") {
104 root_dir = preprocess_folder
105 out_dir = tsc_folder
106 tsconfig_base = "tsconfig_base.json"
107 composite = true
108
109 definitions = [
Luciano Pachecob1272ad2024-01-22 02:22:14110 "//tools/typescript/definitions/chrome_test.d.ts",
Luciano Pacheco23364a22023-10-17 01:24:34111 "//tools/typescript/definitions/runtime.d.ts",
112 "//tools/typescript/definitions/file_system.d.ts",
Luciano Pachecob1272ad2024-01-22 02:22:14113 "//tools/typescript/definitions/windows.d.ts",
Luciano Pacheco23364a22023-10-17 01:24:34114 "definitions.d.ts",
Luciano Pachecob1272ad2024-01-22 02:22:14115
116 # "//ui/file_manager/file_manager/definitions/file_manager_private.d.ts",
Luciano Pacheco23364a22023-10-17 01:24:34117 ]
118
Luciano Pacheco63be2c42024-02-01 06:50:30119 extra_deps = [
120 ":copy_src",
121 ":from_files_app",
122 ]
Luciano Pacheco23364a22023-10-17 01:24:34123
Luciano Pacheco63be2c42024-02-01 06:50:30124 in_files = js_files + ts_files + [
125 # Copied from the Files app production to avoid duplication.
126 "prod/file_manager/shared_types.ts",
127 ]
Luciano Pachecoa2319c02023-10-17 00:59:52128}
129
130group("build") {
131 deps = [
Luciano Pacheco23364a22023-10-17 01:24:34132 ":build_ts",
Luciano Pachecoa2319c02023-10-17 00:59:52133 ":copy_app",
Luciano Pachecoa2319c02023-10-17 00:59:52134 ]
135
136 # Also as data_deps to make the files available at runtime to the
137 # browser_tests binary, see `gn help runtime_deps` for more info.
138 data_deps = [
Luciano Pacheco23364a22023-10-17 01:24:34139 ":build_ts",
Luciano Pachecoa2319c02023-10-17 00:59:52140 ":copy_app",
Luciano Pachecoa2319c02023-10-17 00:59:52141 ]
142}