blob: 67a0edca7b8d654b42363fc9f80da3b6fb45f61e [file] [log] [blame]
# Copyright 2014 The Chromium Authors
# 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("//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") {
enable_input_discovery_for_gn_analyze = false
source = "$root_gen_dir/ui/webui/resources/webui_resources.grd"
deps = [ "//ui/webui/resources:build_grd" ]
outputs = [
"grit/webui_resources.h",
"grit/webui_resources_map.cc",
"grit/webui_resources_map.h",
"webui_resources.pak",
]
}
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_apple) {
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/ax_strings_en-US.pak",
"$root_gen_dir/ui/strings/ui_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) {
sources +=
[ "$root_gen_dir/ui/chromeos/strings/ui_chromeos_strings_en-US.pak" ]
deps += [ "//ui/chromeos/strings" ]
}
if (is_chromeos_ash) {
sources += [ "$root_gen_dir/ui/chromeos/resources/ui_chromeos_resources_100_percent.pak" ]
deps += [ "//ui/chromeos/resources" ]
}
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",
]
}
}
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/ax_strings_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" ]
}