| # 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. |
| |
| import("//build/config/chromeos/ui_mode.gni") |
| import("//build/config/crypto.gni") |
| import("//third_party/closure_compiler/compile_js.gni") |
| import("//tools/typescript/ts_definitions.gni") |
| import("//tools/typescript/ts_library.gni") |
| import("//ui/webui/resources/tools/generate_grd.gni") |
| |
| include_polymer = !is_android && !is_ios |
| |
| generate_grd("build_grd") { |
| grd_prefix = "webui_generated" |
| out_grd = "$target_gen_dir/${grd_prefix}_resources.grd" |
| |
| deps = [ |
| "css:build_grdp", |
| "html:build_grdp", |
| "images:build_grdp", |
| "js:build_grdp", |
| "js/cr/ui:build_grdp", |
| "//third_party/jstemplate:build_grdp", |
| ] |
| grdp_files = [ |
| "$target_gen_dir/css/resources.grdp", |
| "$target_gen_dir/html/resources.grdp", |
| "$target_gen_dir/images/resources.grdp", |
| "$target_gen_dir/js/cr/ui/resources.grdp", |
| "$target_gen_dir/js/resources.grdp", |
| "$root_gen_dir/third_party/jstemplate/resources.grdp", |
| ] |
| |
| if (!is_chromeos_ash && !is_android) { |
| # Roboto Font. Roboto-Regular and Roboto-Light is already available on |
| # Android, and Roboto-Medium is not used on Android. All 6 weights of |
| # Roboto are available on Chrome OS. |
| input_files_base_dir = rebase_path(".", "//") |
| input_files = [ |
| "roboto/roboto-bold.woff2", |
| "roboto/roboto-medium.woff2", |
| "roboto/roboto-regular.woff2", |
| ] |
| } |
| |
| if (include_polymer) { |
| deps += [ |
| "cr_components:build_grdp", |
| "cr_elements:build_grdp", |
| "//third_party/polymer/v3_0:build_grdp", |
| ] |
| grdp_files += [ |
| "$root_gen_dir/third_party/polymer/v3_0/polymer_3_0_resources.grdp", |
| "$root_gen_dir/ui/webui/resources/cr_components/cr_components_resources.grdp", |
| "$root_gen_dir/ui/webui/resources/cr_elements/cr_elements_resources.grdp", |
| ] |
| |
| if (use_nss_certs) { |
| deps += [ "cr_components/certificate_manager:build_grdp" ] |
| grdp_files += |
| [ "$target_gen_dir/cr_components/certificate_manager/resources.grdp" ] |
| } |
| |
| # TODO(crbug.com/1184053): Fully remove once no longer used by CrOS. |
| if (is_chromeos_ash) { |
| deps += [ "//third_party/polymer/v1_0:build_grdp" ] |
| grdp_files += [ |
| "$root_gen_dir/third_party/polymer/v1_0/polymer_1_0_resources.grdp", |
| ] |
| } |
| } |
| |
| if (is_chromeos_ash) { |
| deps += [ |
| "//ash/webui/common/resources:build_grdp", |
| "//third_party/web-animations-js:build_grdp", |
| ] |
| grdp_files += [ |
| "$root_gen_dir/third_party/web-animations-js/web_animations_resources.grdp", |
| "$root_gen_dir/ash/webui/common/resources/ash_common_resources.grdp", |
| ] |
| } |
| |
| if (!is_android && !is_ios) { |
| deps += [ "//third_party/lottie:build_grdp" ] |
| grdp_files += [ "$root_gen_dir/third_party/lottie/resources.grdp" ] |
| } |
| } |
| |
| group("preprocess") { |
| public_deps = [ |
| "cr_components:preprocess", |
| "cr_elements:preprocess", |
| "js:preprocess", |
| ] |
| } |
| |
| group("closure_compile") { |
| deps = [ |
| "js:closure_compile", |
| "js:closure_compile_modules", |
| ] |
| |
| if (!is_android) { |
| deps += [ |
| "cr_components:closure_compile", |
| "cr_elements:closure_compile", |
| ] |
| } |
| } |
| |
| group("modulize") { |
| public_deps = [ |
| "js:modulize", |
| "js/cr:modulize", |
| "js/cr/ui:modulize", |
| ] |
| |
| if (!is_android) { |
| public_deps += [ |
| "cr_components:polymer3_elements", |
| "cr_elements:polymer3_elements", |
| ] |
| } |
| } |
| |
| # TypeScript targets |
| |
| preprocessed_folder = "$target_gen_dir/preprocessed" |
| |
| checked_in_dts_files = [ |
| "cr_components/managed_footnote/managed_footnote.d.ts", |
| "cr_elements/cr_action_menu/cr_action_menu.m.d.ts", |
| "cr_elements/cr_button/cr_button.m.d.ts", |
| "cr_elements/cr_checkbox/cr_checkbox.m.d.ts", |
| "cr_elements/cr_container_shadow_behavior.m.d.ts", |
| "cr_elements/cr_dialog/cr_dialog.m.d.ts", |
| "cr_elements/cr_drawer/cr_drawer.d.ts", |
| "cr_elements/cr_expand_button/cr_expand_button.m.d.ts", |
| "cr_elements/cr_icon_button/cr_icon_button.m.d.ts", |
| "cr_elements/cr_input/cr_input.m.d.ts", |
| "cr_elements/cr_lazy_render/cr_lazy_render.m.d.ts", |
| "cr_elements/cr_radio_button/cr_radio_button_behavior.m.d.ts", |
| "cr_elements/cr_radio_button/cr_radio_button.m.d.ts", |
| "cr_elements/cr_radio_group/cr_radio_group.m.d.ts", |
| "cr_elements/cr_search_field/cr_search_field_behavior.d.ts", |
| "cr_elements/cr_toast/cr_toast_manager.m.d.ts", |
| "cr_elements/cr_toast/cr_toast.m.d.ts", |
| "cr_elements/cr_toggle/cr_toggle.m.d.ts", |
| "cr_elements/cr_toolbar/cr_toolbar_search_field.d.ts", |
| "cr_elements/cr_view_manager/cr_view_manager.d.ts", |
| "cr_elements/find_shortcut_behavior.d.ts", |
| "cr_elements/policy/cr_policy_indicator_behavior.m.d.ts", |
| "cr_elements/policy/cr_policy_indicator.m.d.ts", |
| "cr_elements/policy/cr_tooltip_icon.m.d.ts", |
| "js/cr/ui/focus_row_behavior.m.d.ts", |
| "js/i18n_behavior.m.d.ts", |
| "js/list_property_update_behavior.m.d.ts", |
| "js/promise_resolver.m.d.ts", |
| "js/web_ui_listener_behavior.m.d.ts", |
| ] |
| |
| # Copies checked-in .d.ts files to the preprocess folder so that they are |
| # discovered by TSC the same way generated .d.ts files are. |
| copy("copy_checked_in_dts_files") { |
| sources = checked_in_dts_files |
| outputs = [ "$preprocessed_folder/{{source_target_relative}}" ] |
| } |
| |
| ts_library("library") { |
| root_dir = preprocessed_folder |
| out_dir = preprocessed_folder |
| composite = true |
| |
| definitions = [] |
| |
| # Checked-in .d.ts files. |
| foreach(_file, checked_in_dts_files) { |
| definitions += [ "$root_dir/$_file" ] |
| } |
| |
| definitions += [ |
| # Auto-generated .d.ts files. |
| "$root_dir/cr_components/managed_dialog/managed_dialog.d.ts", |
| "$root_dir/cr_elements/action_link_css.m.d.ts", |
| "$root_dir/cr_elements/cr_fingerprint/cr_fingerprint_icon.m.d.ts", |
| "$root_dir/cr_elements/cr_fingerprint/cr_fingerprint_progress_arc.m.d.ts", |
| "$root_dir/cr_elements/cr_actionable_row_style.m.d.ts", |
| "$root_dir/cr_elements/cr_grid/cr_grid.d.ts", |
| "$root_dir/cr_elements/cr_icons_css.m.d.ts", |
| "$root_dir/cr_elements/cr_auto_img/cr_auto_img.d.ts", |
| "$root_dir/cr_elements/cr_input/cr_input_style_css.m.d.ts", |
| "$root_dir/cr_elements/cr_link_row/cr_link_row.d.ts", |
| "$root_dir/cr_elements/cr_lottie/cr_lottie.m.d.ts", |
| "$root_dir/cr_elements/cr_menu_selector/cr_menu_selector.d.ts", |
| "$root_dir/cr_elements/cr_page_host_style_css.d.ts", |
| "$root_dir/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector_grid.d.ts", |
| "$root_dir/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.d.ts", |
| "$root_dir/cr_elements/cr_radio_button/cr_radio_button_style_css.m.d.ts", |
| "$root_dir/cr_elements/cr_scrollable_behavior.m.d.ts", |
| "$root_dir/cr_elements/cr_slider/cr_slider.d.ts", |
| "$root_dir/cr_elements/cr_splitter/cr_splitter.d.ts", |
| "$root_dir/cr_elements/cr_toolbar/cr_toolbar.d.ts", |
| "$root_dir/cr_elements/cr_toolbar/cr_toolbar_selection_overlay.d.ts", |
| "$root_dir/cr_elements/hidden_style_css.m.d.ts", |
| "$root_dir/cr_elements/icons.m.d.ts", |
| "$root_dir/cr_elements/md_select_css.m.d.ts", |
| "$root_dir/cr_elements/mouse_hoverable_mixin.d.ts", |
| "$root_dir/cr_elements/mwb_shared_style.d.ts", |
| "$root_dir/cr_elements/mwb_shared_vars.d.ts", |
| "$root_dir/cr_elements/policy/cr_policy_pref_behavior.m.d.ts", |
| "$root_dir/cr_elements/policy/cr_policy_pref_indicator.m.d.ts", |
| "$root_dir/cr_elements/search_highlight_style_css.d.ts", |
| "$root_dir/cr_elements/shared_style_css.m.d.ts", |
| "$root_dir/cr_elements/shared_vars_css.m.d.ts", |
| "$root_dir/js/action_link.d.ts", |
| "$root_dir/js/assert.m.d.ts", |
| "$root_dir/js/color_utils.d.ts", |
| "$root_dir/js/cr/event_target.m.d.ts", |
| "$root_dir/js/cr.m.d.ts", |
| "$root_dir/js/cr/ui/drag_wrapper.d.ts", |
| "$root_dir/js/cr/ui/focus_grid.d.ts", |
| "$root_dir/js/cr/ui/focus_outline_manager.m.d.ts", |
| "$root_dir/js/cr/ui/focus_row.m.d.ts", |
| "$root_dir/js/cr/ui/keyboard_shortcut_list.m.d.ts", |
| "$root_dir/js/cr/ui/store_client.m.d.ts", |
| "$root_dir/js/event_tracker.m.d.ts", |
| "$root_dir/js/load_time_data.m.d.ts", |
| "$root_dir/js/parse_html_subset.m.d.ts", |
| "$root_dir/js/plural_string_proxy.d.ts", |
| "$root_dir/js/search_highlight_utils.d.ts", |
| "$root_dir/js/icon.m.d.ts", |
| "$root_dir/js/util.m.d.ts", |
| ] |
| |
| if (is_chromeos_ash) { |
| definitions += [ |
| "$root_dir/cr_elements/chromeos/cros_color_overrides.m.d.ts", |
| "$root_dir/cr_elements/chromeos/cr_picture/png.m.d.ts", |
| ] |
| } |
| |
| if (!is_android) { |
| definitions += [ "$root_dir/js/cr/ui/focus_without_ink.m.d.ts" ] |
| } |
| |
| deps = [ "//third_party/polymer/v3_0:library" ] |
| extra_deps = [ |
| ":copy_checked_in_dts_files", |
| ":generate_definitions", |
| ] |
| } |
| |
| ts_definitions("generate_definitions") { |
| root_dir = preprocessed_folder |
| out_dir = preprocessed_folder |
| js_files = [ |
| "cr_components/managed_dialog/managed_dialog.js", |
| "cr_elements/action_link_css.m.js", |
| "cr_elements/cr_a11y_announcer/cr_a11y_announcer.js", |
| "cr_elements/cr_actionable_row_style.m.js", |
| "cr_elements/cr_fingerprint/cr_fingerprint_icon.m.js", |
| "cr_elements/cr_fingerprint/cr_fingerprint_progress_arc.m.js", |
| "cr_elements/cr_grid/cr_grid.js", |
| "cr_elements/cr_icons_css.m.js", |
| "cr_elements/cr_auto_img/cr_auto_img.js", |
| "cr_elements/cr_input/cr_input_style_css.m.js", |
| "cr_elements/cr_link_row/cr_link_row.js", |
| "cr_elements/cr_lottie/cr_lottie.m.js", |
| "cr_elements/cr_menu_selector/cr_menu_selector.js", |
| "cr_elements/cr_page_host_style_css.js", |
| "cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector_grid.js", |
| "cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.js", |
| "cr_elements/cr_radio_button/cr_radio_button_style_css.m.js", |
| "cr_elements/cr_scrollable_behavior.m.js", |
| "cr_elements/cr_search_field/cr_search_field.js", |
| "cr_elements/cr_slider/cr_slider.js", |
| "cr_elements/cr_splitter/cr_splitter.js", |
| "cr_elements/cr_tabs/cr_tabs.js", |
| "cr_elements/cr_toolbar/cr_toolbar.js", |
| "cr_elements/cr_toolbar/cr_toolbar_selection_overlay.js", |
| "cr_elements/hidden_style_css.m.js", |
| "cr_elements/icons.m.js", |
| "cr_elements/md_select_css.m.js", |
| "cr_elements/mouse_hoverable_mixin.js", |
| "cr_elements/mwb_shared_style.js", |
| "cr_elements/mwb_shared_vars.js", |
| "cr_elements/policy/cr_policy_pref_behavior.m.js", |
| "cr_elements/policy/cr_policy_pref_indicator.m.js", |
| "cr_elements/search_highlight_style_css.js", |
| "cr_elements/shared_style_css.m.js", |
| "cr_elements/shared_vars_css.m.js", |
| "js/action_link.js", |
| "js/assert.m.js", |
| "js/color_utils.js", |
| "js/cr/event_target.m.js", |
| "js/cr.m.js", |
| "js/cr/ui/drag_wrapper.js", |
| "js/cr/ui/focus_grid.js", |
| "js/cr/ui/focus_outline_manager.m.js", |
| "js/cr/ui/focus_row.m.js", |
| "js/cr/ui/keyboard_shortcut_list.m.js", |
| "js/cr/ui/store_client.m.js", |
| "js/cr/ui/store.m.js", |
| "js/event_tracker.m.js", |
| "js/icon.m.js", |
| "js/load_time_data.m.js", |
| "js/parse_html_subset.m.js", |
| "js/plural_string_proxy.js", |
| "js/search_highlight_utils.js", |
| "js/util.m.js", |
| ] |
| |
| if (is_chromeos_ash) { |
| js_files += [ |
| "cr_elements/chromeos/cros_color_overrides.m.js", |
| "cr_elements/chromeos/cr_picture/png.m.js", |
| ] |
| } |
| |
| if (!is_android) { |
| js_files += [ "js/cr/ui/focus_without_ink.m.js" ] |
| } |
| |
| extra_deps = [ |
| # Copy checked-in d.ts files first, so that |generate_definitions| leverages |
| # these files, instead of accidentally auto-generating them. |
| ":copy_checked_in_dts_files", |
| ":preprocess", |
| ] |
| } |