blob: a1be35643a2714eb74ab45a31c0ae8f50af5cb1d [file] [log] [blame]
# 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"
deps = [
"//ui/webui/resources:modulize",
]
# 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 += [ "//ash/app_list/resources" ]
sources += [
"$root_gen_dir/ash/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",
]
}