# 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("//build/config/jumbo.gni") import("//tools/grit/grit_rule.gni") import("//tools/grit/repack.gni") import("//ui/webui/webui_features.gni") group("resources") { public_deps = [ ":ui_resources_grd", ":ui_unscaled_resources_grd", ":webui_resources_grd", ] } grit("ui_resources_grd") { source = "ui_resources.grd" outputs = [ "grit/ui_resources.h", "grit/ui_resources_map.cc", "grit/ui_resources_map.h", "ui_resources_100_percent.pak", "ui_resources_200_percent.pak", "ui_resources_300_percent.pak", ] } grit("ui_unscaled_resources_grd") { source = "ui_unscaled_resources.grd" outputs = [ "grit/ui_unscaled_resources.h", "ui_unscaled_resources.rc", ] } grit("webui_resources_grd") { defines = [ "optimize_webui=$optimize_webui" ] source = "../webui/resources/webui_resources.grd" # The .grd contains references to generated files. source_is_generated = true outputs = [ "grit/webui_resources.h", "grit/webui_resources_map.cc", "grit/webui_resources_map.h", "webui_resources.pak", ] grit_flags = [ "-E", "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir), ] } if (!is_mac) { copy("copy_ui_resources_100_percent") { sources = [ "$root_gen_dir/ui/resources/ui_resources_100_percent.pak", ] outputs = [ "$root_out_dir/ui_resources_100_percent.pak", ] deps = [ "//ui/resources", ] } } # On iOS and Mac the string resources need to go into a locale subfolder, which # introduces an extra dependency. if (is_ios || is_mac) { group("ui_test_pak") { public_deps = [ ":repack_ui_test_mac_locale_pack", ":repack_ui_test_pak_100_percent", ] } # This needs to be a separate target from ui_test_pak as ui_base_unittests # wants the generate .pak file in the bundle to be named en.lpro/locale.pak # while components_unittests wants it to be named ui_test.pak. bundle_data("ui_test_pak_bundle_data_locale") { testonly = true visibility = [ ":ui_test_pak_bundle_data" ] public_deps = [ ":ui_test_pak", ] sources = [ "$root_out_dir/ui_test.pak", ] outputs = [ "{{bundle_resources_dir}}/en.lproj/locale.pak", ] } bundle_data("ui_test_pak_bundle_data_test_pak") { testonly = true visibility = [ ":ui_test_pak_bundle_data" ] public_deps = [ ":ui_test_pak", ] sources = [ "$root_out_dir/ui_test.pak", ] outputs = [ "{{bundle_resources_dir}}/ui_test.pak", ] } bundle_data("ui_test_pak_bundle_data_100_percent") { testonly = true visibility = [ ":ui_test_pak_bundle_data" ] public_deps = [ ":ui_test_pak", ] sources = [ "$root_out_dir/ui_test.pak", ] outputs = [ "{{bundle_resources_dir}}/chrome_100_percent.pak", ] } group("ui_test_pak_bundle_data") { testonly = true public_deps = [ ":ui_test_pak_bundle_data_100_percent", ":ui_test_pak_bundle_data_locale", ":ui_test_pak_bundle_data_test_pak", ] } } else { copy("ui_test_pak") { sources = [ "$root_out_dir/ui_test.pak", ] outputs = [ "$root_out_dir/ui/en-US.pak", ] public_deps = [ ":repack_ui_test_pak_100_percent", ] } } # This group exists just for targets that need the data file to exist in the # build directory so it can be loaded for test purposes. If a target requires # 200 percent resources it should also depend on ui_test_pak_data_200_percent. group("ui_test_pak_data") { data_deps = [ ":repack_ui_test_pak_100_percent", ] } group("ui_test_pak_data_200_percent") { data_deps = [ ":repack_ui_test_pak_200_percent", ] } repack("repack_ui_test_pak_100_percent") { # Depend on ui_test_pak or ui_test_pak_data instead of this one. visibility = [ ":ui_test_pak", ":ui_test_pak_data", ] sources = [ "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", "$root_gen_dir/ui/resources/ui_resources_100_percent.pak", "$root_gen_dir/ui/resources/webui_resources.pak", "$root_gen_dir/ui/strings/app_locale_settings_en-US.pak", "$root_gen_dir/ui/strings/ui_strings_en-US.pak", ] if (is_chromeos) { sources += [ "$root_gen_dir/ui/chromeos/resources/ui_chromeos_resources_100_percent.pak", "$root_gen_dir/ui/chromeos/strings/ui_chromeos_strings_en-US.pak", ] } output = "$root_out_dir/ui_test.pak" deps = [ "//mojo/public/js:resources", "//ui/resources", "//ui/strings", ] if (!is_ios) { deps += [ "//third_party/blink/public:resources_grit" ] } if (!is_mac) { deps += [ ":copy_ui_resources_100_percent" ] } if (is_chromeos) { deps += [ "//ui/chromeos/resources", "//ui/chromeos/strings", ] } if (toolkit_views) { deps += [ "//ui/views/resources" ] sources += [ "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak", "$root_gen_dir/ui/views/resources/views_resources_100_percent.pak", ] } if (use_aura && toolkit_views) { deps += [ "//ui/app_list/resources" ] sources += [ "$root_gen_dir/ui/app_list/resources/app_list_resources_100_percent.pak", ] } } repack("repack_ui_test_pak_200_percent") { visibility = [ ":ui_test_pak_data_200_percent" ] sources = [ "$root_gen_dir/ui/resources/ui_resources_200_percent.pak", ] output = "$root_out_dir/ui_test_200_percent.pak" deps = [ "//ui/resources", ] if (toolkit_views) { deps += [ "//ui/views/resources" ] sources += [ "$root_gen_dir/ui/views/resources/views_resources_200_percent.pak" ] } } # Repack just the strings for the framework locales on Mac and iOS. This # emulates repack_locales(), but just for en-US. Note ui_test.pak is not simply # copied, because it causes leaks from allocations within system libraries when # trying to load non-string resources. http://crbug.com/413034. repack("repack_ui_test_mac_locale_pack") { visibility = [ ":ui_test_pak" ] sources = [ "$root_gen_dir/ui/strings/app_locale_settings_en-US.pak", "$root_gen_dir/ui/strings/ui_strings_en-US.pak", ] output = "$root_out_dir/ui/en.lproj/locale.pak" deps = [ "//ui/strings", ] }