diff options
-rw-r--r-- | build/java.gypi | 36 | ||||
-rw-r--r-- | build/java_apk.gypi | 53 | ||||
-rw-r--r-- | chrome/chrome.gyp | 1 | ||||
-rw-r--r-- | content/content.gyp | 1 | ||||
-rw-r--r-- | ui/ui.gyp | 1 |
5 files changed, 78 insertions, 14 deletions
diff --git a/build/java.gypi b/build/java.gypi index f958132..bd3976c 100644 --- a/build/java.gypi +++ b/build/java.gypi @@ -44,6 +44,8 @@ # 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. { 'dependencies': [ @@ -65,17 +67,20 @@ 'generated_R_dirs': [], 'additional_R_files': [], 'has_java_resources%': 0, + 'java_strings_grd%': '', }, 'conditions': [ ['has_java_resources == 1', { 'variables': { 'res_dir': '<(java_in_dir)/res', - 'crunched_res_dir': '<(SHARED_INTERMEDIATE_DIR)/<(package_name)/res', + 'out_res_dir': '<(SHARED_INTERMEDIATE_DIR)/<(package_name)/res', 'R_dir': '<(SHARED_INTERMEDIATE_DIR)/<(package_name)/java_R', 'R_file': '<(R_dir)/<(R_package_relpath)/R.java', 'R_text_file': '<(R_dir)/R.txt', 'generated_src_dirs': ['<(R_dir)'], 'additional_input_paths': ['<(R_file)'], + # grit_grd_file is used by grit_action.gypi, included below. + 'grit_grd_file': '<(java_in_dir)/strings/<(java_strings_grd)', }, 'all_dependent_settings': { 'variables': { @@ -87,15 +92,40 @@ # Dependent APKs include this target's resources via # additional_res_dirs and additional_res_packages. - 'additional_res_dirs': ['<(crunched_res_dir)', '<(res_dir)'], + 'additional_res_dirs': ['<(out_res_dir)', '<(res_dir)'], 'additional_res_packages': ['<(R_package)'], }, }, + 'conditions': [ + ['java_strings_grd != ""', { + 'actions': [ + { + 'action_name': 'generate_localized_strings_xml', + 'variables': { + 'grit_out_dir': '<(out_res_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. { 'action_name': 'process_resources', 'message': 'processing resources for <(package_name)', + 'conditions': [ + ['java_strings_grd != ""', { + 'inputs': [ + # TODO(newt): replace this with .../values/strings.xml once + # the English strings.xml is generated as well? That would be + # simpler and faster and should be equivalent. + '<!@pymod_do_main(grit_info <@(grit_defines) --outputs "<(out_res_dir)" <(grit_grd_file))', + ], + }], + ], 'inputs': [ '<(DEPTH)/build/android/process_resources.py', '<!@(find <(res_dir) -type f)', @@ -110,7 +140,7 @@ '--R-package', '<(R_package)', '--R-dir', '<(R_dir)', '--res-dir', '<(res_dir)', - '--crunched-res-dir', '<(crunched_res_dir)', + '--crunched-res-dir', '<(out_res_dir)', ], }, ], diff --git a/build/java_apk.gypi b/build/java_apk.gypi index 841a469..a887663 100644 --- a/build/java_apk.gypi +++ b/build/java_apk.gypi @@ -57,6 +57,8 @@ # 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. { 'variables': { @@ -76,6 +78,8 @@ 'additional_res_dirs': [], 'additional_res_packages': [], 'is_test_apk%': 0, + 'java_strings_grd%': '', + 'grit_grd_file%': '', }, 'sources': [ '<@(native_libs_paths)' @@ -109,6 +113,36 @@ ], }, ], + 'conditions': [ + ['R_package != ""', { + 'variables': { + # We generate R.java in package R_package (in addition to the package + # listed in the AndroidManifest.xml, which is unavoidable). + 'additional_res_dirs': ['<(DEPTH)/build/android/ant/empty/res'], + 'additional_res_packages': ['<(R_package)'], + 'additional_R_text_files': ['<(PRODUCT_DIR)/<(package_name)/R.txt'], + }, + }], + ['java_strings_grd != ""', { + 'variables': { + 'out_res_dir': '<(SHARED_INTERMEDIATE_DIR)/<(package_name)_apk/res', + 'additional_res_dirs': ['<(out_res_dir)'], + # grit_grd_file is used by grit_action.gypi, included below. + 'grit_grd_file': '<(java_in_dir)/strings/<(java_strings_grd)', + }, + 'actions': [ + { + 'action_name': 'generate_localized_strings_xml', + 'variables': { + 'grit_out_dir': '<(out_res_dir)', + # resource_ids is unneeded since we don't generate .h headers. + 'grit_resource_ids': '', + }, + 'includes': ['../build/grit_action.gypi'], + }, + ], + }], + ], 'actions': [ { 'action_name': 'ant_<(package_name)_apk', @@ -129,6 +163,14 @@ ['resource_dir!=""', { 'inputs': ['<!@(find <(java_in_dir)/<(resource_dir) -name "*")'] }], + ['java_strings_grd != ""', { + 'inputs': [ + # TODO(newt): replace this with .../values/strings.xml once + # the English strings.xml is generated as well? That would be + # simpler and faster and should be equivalent. + '<!@pymod_do_main(grit_info <@(grit_defines) --outputs "<(out_res_dir)" <(grit_grd_file))', + ], + }], ['is_test_apk == 1', { 'variables': { 'additional_res_dirs=': [], @@ -181,15 +223,4 @@ ] }, ], - 'conditions': [ - ['R_package != ""', { - 'variables': { - # We generate R.java in package R_package (in addition to the package - # listed in the AndroidManifest.xml, which is unavoidable). - 'additional_res_dirs': ['<(DEPTH)/build/android/ant/empty/res'], - 'additional_res_packages': ['<(R_package)'], - 'additional_R_text_files': ['<(PRODUCT_DIR)/<(package_name)/R.txt'], - }, - }], - ], } diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp index 4b9c83c..f05fee7 100644 --- a/chrome/chrome.gyp +++ b/chrome/chrome.gyp @@ -1082,6 +1082,7 @@ 'has_java_resources': 1, 'R_package': 'org.chromium.chrome', 'R_package_relpath': 'org/chromium/chrome', + 'java_strings_grd': 'android_chrome_strings.grd', }, 'includes': [ '../build/java.gypi', diff --git a/content/content.gyp b/content/content.gyp index cb1f23b..ae5334a4 100644 --- a/content/content.gyp +++ b/content/content.gyp @@ -303,6 +303,7 @@ 'has_java_resources': 1, 'R_package': 'org.chromium.content', 'R_package_relpath': 'org/chromium/content', + 'java_strings_grd': 'android_content_strings.grd', }, 'conditions': [ ['android_build_type == 0', { @@ -889,6 +889,7 @@ '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', |