[android] Generate strings.xml for android_webview.
This makes it possible for the android_webview component to generate
strings.xml files from .grd files in the android_webview_build
configuration.
BUG=internal b/11505352
TESTS=compile
[email protected]
Review URL: https://codereview.chromium.org/270633015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269779 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/android_webview/android_webview.gyp b/android_webview/android_webview.gyp
index 37dc435d54..420cd76e 100644
--- a/android_webview/android_webview.gyp
+++ b/android_webview/android_webview.gyp
@@ -33,12 +33,12 @@
'../content/content.gyp:screen_orientation_values_java',
'../content/content.gyp:speech_recognition_error_java',
'../media/media.gyp:media_android_imageformat_list',
- '../net/net.gyp:certificate_mime_types_java',
'../net/net.gyp:cert_verify_status_android_java',
+ '../net/net.gyp:certificate_mime_types_java',
'../net/net.gyp:net_errors_java',
'../net/net.gyp:private_key_types_java',
- '../ui/android/ui_android.gyp:window_open_disposition_java',
'../ui/android/ui_android.gyp:bitmap_format_java',
+ '../ui/android/ui_android.gyp:window_open_disposition_java',
],
}],
[ 'android_webview_build==1 and use_system_skia==0', {
@@ -256,6 +256,18 @@
'includes': [ '../build/java.gypi' ],
},
],
+ }, { # android_webview_build==1
+ 'targets': [
+ {
+ 'target_name': 'android_webview_strings',
+ 'type': 'none',
+ 'android_unmangled_name': 1,
+ 'dependencies': [
+ '../content/content.gyp:content_strings_grd',
+ '../ui/android/ui_android.gyp:ui_strings_grd',
+ ],
+ },
+ ],
}],
],
}
diff --git a/build/java.gypi b/build/java.gypi
index 546276a..8f61395 100644
--- a/build/java.gypi
+++ b/build/java.gypi
@@ -39,8 +39,6 @@
# R_package - The java package in which the R class (which maps resources to
# integer IDs) should be generated, e.g. org.chromium.content.
# R_package_relpath - Same as R_package, but replace each '.' with '/'.
-# java_strings_grd - The name of the grd file from which to generate localized
-# strings.xml files, if any.
# res_extra_dirs - A list of extra directories containing Android resources.
# These directories may be generated at build time.
# res_extra_files - A list of the files in res_extra_dirs.
@@ -66,7 +64,6 @@
'generated_src_dirs': ['>@(generated_R_dirs)'],
'generated_R_dirs': [],
'has_java_resources%': 0,
- 'java_strings_grd%': '',
'res_extra_dirs': [],
'res_extra_files': [],
'res_v14_verify_only%': 0,
@@ -150,28 +147,6 @@
'additional_R_text_files': ['<(R_text_file)'],
},
},
- 'conditions': [
- ['java_strings_grd != ""', {
- 'variables': {
- 'res_grit_dir': '<(intermediate_dir)/res_grit',
- 'res_input_dirs': ['<(res_grit_dir)'],
- 'grit_grd_file': '<(java_in_dir)/strings/<(java_strings_grd)',
- 'resource_input_paths': ['<!@pymod_do_main(grit_info <@(grit_defines) --outputs "<(res_grit_dir)" <(grit_grd_file))'],
- },
- 'actions': [
- {
- 'action_name': 'generate_localized_strings_xml',
- 'variables': {
- 'grit_additional_defines': ['-E', 'ANDROID_JAVA_TAGGED_ONLY=false'],
- 'grit_out_dir': '<(res_grit_dir)',
- # resource_ids is unneeded since we don't generate .h headers.
- 'grit_resource_ids': '',
- },
- 'includes': ['../build/grit_action.gypi'],
- },
- ],
- }],
- ],
'actions': [
# Generate R.java and crunch image resources.
{
diff --git a/build/java_apk.gypi b/build/java_apk.gypi
index 57af7ef..e296e5a4 100644
--- a/build/java_apk.gypi
+++ b/build/java_apk.gypi
@@ -44,8 +44,6 @@
# resource_dir - The directory for resources.
# R_package - A custom Java package to generate the resource file R.java in.
# By default, the package given in AndroidManifest.xml will be used.
-# java_strings_grd - The name of the grd file from which to generate localized
-# strings.xml files, if any.
# use_chromium_linker - Enable the content dynamic linker that allows sharing the
# RELRO section of the native libraries between the different processes.
# enable_chromium_linker_tests - Enable the content dynamic linker test support
@@ -70,7 +68,6 @@
'additional_res_dirs': [],
'additional_res_packages': [],
'is_test_apk%': 0,
- 'java_strings_grd%': '',
'resource_input_paths': [],
'intermediate_dir': '<(PRODUCT_DIR)/<(_target_name)',
'asset_location%': '<(intermediate_dir)/assets',
@@ -393,29 +390,6 @@
},
],
}],
- ['java_strings_grd != ""', {
- 'variables': {
- 'res_grit_dir': '<(SHARED_INTERMEDIATE_DIR)/<(package_name)_apk/res_grit',
- 'additional_res_dirs': ['<(res_grit_dir)'],
- # grit_grd_file is used by grit_action.gypi, included below.
- 'grit_grd_file': '<(java_in_dir)/strings/<(java_strings_grd)',
- 'resource_input_paths': [
- '<!@pymod_do_main(grit_info <@(grit_defines) --outputs "<(res_grit_dir)" <(grit_grd_file))'
- ],
- },
- 'actions': [
- {
- 'action_name': 'generate_localized_strings_xml',
- 'variables': {
- 'grit_additional_defines': ['-E', 'ANDROID_JAVA_TAGGED_ONLY=false'],
- 'grit_out_dir': '<(res_grit_dir)',
- # resource_ids is unneeded since we don't generate .h headers.
- 'grit_resource_ids': '',
- },
- 'includes': ['../build/grit_action.gypi'],
- },
- ],
- }],
['gyp_managed_install == 1', {
'actions': [
{
diff --git a/build/java_strings_grd.gypi b/build/java_strings_grd.gypi
new file mode 100644
index 0000000..ff374e31
--- /dev/null
+++ b/build/java_strings_grd.gypi
@@ -0,0 +1,48 @@
+# 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.
+
+# This file is meant to be included into a target to provide a rule
+# to generate localized strings.xml from a grd file.
+#
+# To use this, create a gyp target with the following form:
+# {
+# 'target_name': 'my-package_strings_grd',
+# 'type': 'none',
+# 'variables': {
+# 'grd_file': 'path/to/grd/file',
+# },
+# 'includes': ['path/to/this/gypi/file'],
+# }
+#
+# Required variables:
+# grd_file - The path to the grd file to use.
+{
+ 'variables': {
+ 'intermediate_dir': '<(PRODUCT_DIR)/<(_target_name)',
+ 'res_grit_dir': '<(intermediate_dir)/res_grit',
+ 'grit_grd_file': '<(grd_file)',
+ 'resource_input_paths': [
+ '<!@pymod_do_main(grit_info <@(grit_defines) --outputs "<(res_grit_dir)" <(grd_file))'
+ ],
+ },
+ 'all_dependent_settings': {
+ 'variables': {
+ 'additional_res_dirs': ['<@(res_grit_dir)'],
+ 'dependencies_res_files': ['<@(resource_input_paths)'],
+ 'dependencies_res_input_dirs': ['<@(res_grit_dir)'],
+ },
+ },
+ 'actions': [
+ {
+ 'action_name': 'generate_localized_strings_xml',
+ 'variables': {
+ 'grit_additional_defines': ['-E', 'ANDROID_JAVA_TAGGED_ONLY=false'],
+ 'grit_out_dir': '<(res_grit_dir)',
+ # resource_ids is unneeded since we don't generate .h headers.
+ 'grit_resource_ids': '',
+ },
+ 'includes': ['../build/grit_action.gypi'],
+ },
+ ],
+}
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index d9a31ca..b68fa71 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -726,6 +726,7 @@
'activity_type_ids_java',
'app_banner_metrics_ids_java',
'chrome_resources.gyp:chrome_strings',
+ 'chrome_strings_grd',
'profile_sync_service_model_type_selection_java',
'resource_id_java',
'toolbar_model_security_levels_java',
@@ -747,7 +748,6 @@
'has_java_resources': 1,
'R_package': 'org.chromium.chrome',
'R_package_relpath': 'org/chromium/chrome',
- 'java_strings_grd': 'android_chrome_strings.grd',
# Include xml string files generated from generated_resources.grd
'res_extra_dirs': ['<(SHARED_INTERMEDIATE_DIR)/chrome/java/res'],
'res_extra_files': ['<!@pymod_do_main(grit_info <@(grit_defines) --outputs "<(SHARED_INTERMEDIATE_DIR)/chrome" app/generated_resources.grd)'],
@@ -756,6 +756,16 @@
'../build/java.gypi',
],
},
+ {
+ 'target_name': 'chrome_strings_grd',
+ 'type': 'none',
+ 'variables': {
+ 'grd_file': '../chrome/android/java/strings/android_chrome_strings.grd',
+ },
+ 'includes': [
+ '../build/java_strings_grd.gypi',
+ ],
+ },
], # 'targets'
'includes': [
'chrome_android.gypi',
diff --git a/content/content.gyp b/content/content.gyp
index 5cc8747..703c754 100644
--- a/content/content.gyp
+++ b/content/content.gyp
@@ -421,6 +421,7 @@
'../ui/android/ui_android.gyp:ui_java',
'common_aidl',
'content_common',
+ 'content_strings_grd',
'gesture_event_type_java',
'page_transition_types_java',
'popup_item_type_java',
@@ -434,7 +435,6 @@
'has_java_resources': 1,
'R_package': 'org.chromium.content',
'R_package_relpath': 'org/chromium/content',
- 'java_strings_grd': 'android_content_strings.grd',
},
'conditions': [
['android_webview_build == 0', {
@@ -447,6 +447,16 @@
'includes': [ '../build/java.gypi' ],
},
{
+ 'target_name': 'content_strings_grd',
+ 'type': 'none',
+ 'variables': {
+ 'grd_file': '../content/public/android/java/strings/android_content_strings.grd',
+ },
+ 'includes': [
+ '../build/java_strings_grd.gypi',
+ ],
+ },
+ {
'target_name': 'gesture_event_type_java',
'type': 'none',
'sources': [
diff --git a/ui/android/ui_android.gyp b/ui/android/ui_android.gyp
index adfd156..52e01c3 100644
--- a/ui/android/ui_android.gyp
+++ b/ui/android/ui_android.gyp
@@ -39,14 +39,24 @@
'has_java_resources': 1,
'R_package': 'org.chromium.ui',
'R_package_relpath': 'org/chromium/ui',
- 'java_strings_grd': 'android_ui_strings.grd',
},
'dependencies': [
'../../base/base.gyp:base_java',
- 'window_open_disposition_java',
'bitmap_format_java',
+ 'ui_strings_grd',
+ 'window_open_disposition_java',
],
'includes': [ '../../build/java.gypi' ],
},
+ {
+ 'target_name': 'ui_strings_grd',
+ 'type': 'none',
+ 'variables': {
+ 'grd_file': '../../ui/android/java/strings/android_ui_strings.grd',
+ },
+ 'includes': [
+ '../../build/java_strings_grd.gypi',
+ ],
+ },
],
}