| # Copyright 2010-2015, Google Inc. |
| # All rights reserved. |
| # |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions are |
| # met: |
| # |
| # * Redistributions of source code must retain the above copyright |
| # notice, this list of conditions and the following disclaimer. |
| # * Redistributions in binary form must reproduce the above |
| # copyright notice, this list of conditions and the following disclaimer |
| # in the documentation and/or other materials provided with the |
| # distribution. |
| # * Neither the name of Google Inc. nor the names of its |
| # contributors may be used to endorse or promote products derived from |
| # this software without specific prior written permission. |
| # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| { |
| 'variables': { |
| 'relative_dir': 'android/resources', |
| 'abs_android_dir': '<(abs_depth)/<(relative_dir)', |
| # Actions with an existing input and non-existing output behave like |
| # phony rules. Nothing matters for an input but its existence, so |
| # we use 'resources.gyp' as a dummy input since it must exist. |
| 'dummy_input_file': 'resources.gyp', |
| # GYP's 'copies' rule cannot copy a whole directory recursively, so we use |
| # our own script to copy files. |
| 'copy_file': ['python', '../../build_tools/copy_file.py'], |
| 'shared_intermediate_mozc_dir': '<(SHARED_INTERMEDIATE_DIR)/', |
| 'static_resources_dir': '<(abs_depth)/android/static_resources', |
| 'sdk_resources_dir': '<(shared_intermediate_mozc_dir)/android/resources', |
| }, |
| 'conditions': [ |
| ['branding=="GoogleJapaneseInput"', { |
| 'conditions': [ |
| ['android_hide_icon==1', { |
| 'variables': { |
| 'launcher_icon_bools': '<(static_resources_dir)/launcher_icon_resources/launcher_icon_preinstall_bools.xml', |
| }, |
| }, { # else |
| 'variables': { |
| 'launcher_icon_bools': '<(static_resources_dir)/launcher_icon_resources/launcher_icon_standard_bools.xml', |
| }, |
| }], |
| ['android_release_icon==1', { |
| 'variables': { |
| 'application_icon_dir': '<(static_resources_dir)/application_icon/release_icon/', |
| }, |
| }, { # else |
| 'variables': { |
| 'application_icon_dir': '<(static_resources_dir)/application_icon/dogfood_icon/', |
| }, |
| }], |
| ], |
| 'variables': { |
| 'original_sdk_resources_dir': '<(static_resources_dir)/resources', |
| }, |
| }, { # 'branding!="GoogleJapaneseInput"' |
| 'variables': { |
| 'launcher_icon_bools': '<(static_resources_dir)/launcher_icon_resources/launcher_icon_standard_bools.xml', |
| 'original_sdk_resources_dir': '<(static_resources_dir)/resources_oss', |
| 'application_icon_dir': '<(static_resources_dir)/application_icon/oss_icon/', |
| }, |
| }], |
| ], |
| 'targets': [ |
| { |
| 'target_name': 'resources', |
| 'type': 'none', |
| 'dependencies': [ |
| 'resources_project', |
| ], |
| 'actions': [ |
| { |
| 'action_name': 'build_resources', |
| 'inputs': [ |
| 'AndroidManifest.xml', |
| 'build.xml', |
| 'project.properties', |
| 'ant.properties', |
| 'proguard-project.txt', |
| ], |
| 'outputs': [ |
| 'bin/classes.jar', |
| 'gen/org/mozc/android/inputmethod/japanese/resources/R.java', |
| ], |
| 'includes': ['../ant.gypi'], |
| }, |
| ], |
| }, |
| { |
| 'target_name': 'resources_project', |
| 'type': 'none', |
| 'dependencies': [ |
| 'copy_resources', |
| 'gen_kcm_data', |
| 'gen_mozc_drawable', |
| ], |
| }, |
| { |
| # Copies original resources to intermediate directory. |
| # Then make symbolic link from android/resources to the intermediate directory. |
| # The symbolic link is required to build both by ADT and ant. |
| 'target_name': 'copy_resources', |
| 'type': 'none', |
| 'includes': ['../android_resources.gypi'], |
| 'inputs': ['<@(android_resources)'], |
| 'outputs': ['dummy_copy_resources'], |
| 'actions': [ |
| { |
| 'action_name': 'copy_files', |
| 'inputs': ['<@(android_resources)'], |
| 'outputs': ['dummy_copy_files'], |
| 'action': [ |
| '<@(copy_file)', '-pr', |
| '<@(android_resources)', |
| '<(sdk_resources_dir)', |
| '--src_base', '<(original_sdk_resources_dir)', |
| ], |
| }, |
| { |
| # Make sure the link of resources/res does not exist. |
| # the new link is created in the next step. |
| 'action_name': 'remove_symbolic_link', |
| 'inputs': [ |
| 'dummy_copy_files' |
| ], |
| 'outputs': [ |
| 'dummy_remove_symbolic_link', |
| ], |
| 'action': [ |
| 'rm', '-f', 'res', |
| ], |
| }, |
| { |
| 'action_name': 'make_symbolic_link', |
| 'inputs': [ |
| 'dummy_remove_symbolic_link' |
| ], |
| 'outputs': [ |
| 'dummy_make_symbolic_link', |
| ], |
| 'action': [ |
| 'ln', '-r', '-s', '-f', |
| '<(sdk_resources_dir)/res', |
| 'res', |
| ], |
| }, |
| { |
| 'action_name': 'copy_configuration_dependent_resources', |
| 'inputs': [ |
| 'dummy_make_symbolic_link', |
| ], |
| 'outputs': [ |
| 'dummy_copy_configuration_dependent_resources', |
| ], |
| 'action': [ |
| 'ln', '-s', '-f', |
| '<(launcher_icon_bools)', |
| '<(sdk_resources_dir)/res/values/', |
| ], |
| }, |
| { |
| 'action_name': 'copy_application_icons', |
| 'variables': { |
| 'icon_files': [ |
| '<(application_icon_dir)/drawable-hdpi/application_icon.png', |
| '<(application_icon_dir)/drawable-mdpi/application_icon.png', |
| '<(application_icon_dir)/drawable-xhdpi/application_icon.png', |
| '<(application_icon_dir)/drawable-xxhdpi/application_icon.png', |
| '<(application_icon_dir)/drawable-xxxhdpi/application_icon.png', |
| ], |
| }, |
| 'inputs': [ |
| 'dummy_make_symbolic_link', |
| '<@(icon_files)', |
| ], |
| 'outputs': [ |
| '<(sdk_resources_dir)/res/drawable-hdpi/application_icon.png', |
| '<(sdk_resources_dir)/res/drawable-mdpi/application_icon.png', |
| '<(sdk_resources_dir)/res/drawable-xhdpi/application_icon.png', |
| '<(sdk_resources_dir)/res/drawable-xxhdpi/application_icon.png', |
| '<(sdk_resources_dir)/res/drawable-xxxhdpi/application_icon.png', |
| ], |
| 'action': ['<@(copy_file)', '-pr', |
| '<@(icon_files)', |
| '<(sdk_resources_dir)/res/', |
| '--src_base', '<(application_icon_dir)'], |
| }, |
| ], |
| }, |
| { |
| 'target_name': 'gen_kcm_data', |
| 'type': 'none', |
| 'dependencies': ['copy_resources'], |
| 'copies': [{ |
| 'destination': '<(sdk_resources_dir)/res/raw', |
| 'files': [ |
| '../../data/android/keyboard_layout_japanese109a.kcm', |
| ], |
| }], |
| }, |
| { |
| # This (and 'copy_asis_svg') tareget outputs single .zip file |
| # in order to make build system work correctly. |
| # Without this hack, all the names of the generated files |
| # should be listed up in 'inputs' and/or 'outputs' field. |
| 'target_name': 'transform_template_svg', |
| 'type': 'none', |
| 'actions': [ |
| { |
| 'action_name': 'transform_template_svg', |
| 'inputs': [ |
| '../../data/images/android/template/transform.py', |
| ], |
| 'outputs': [ |
| '<(shared_intermediate_mozc_dir)/data/images/android/svg/transformed.zip', |
| ], |
| 'conditions': [ |
| ['OS=="linux" or OS=="mac"', { |
| 'inputs': ['<!@(ls -1 ../../data/images/android/template/*.svg)'] |
| }, { |
| # TODO: Support Windows. |
| 'inputs': ['<(dummy_input_file)'] |
| }], |
| ], |
| 'action': [ |
| 'python', '../../data/images/android/template/transform.py', |
| '--output_zip', '<@(_outputs)', |
| ], |
| }, |
| ], |
| }, |
| { |
| 'target_name': 'copy_asis_svg', |
| 'type': 'none', |
| 'actions': [ |
| { |
| 'action_name': 'archive_asis_svg', |
| 'outputs': [ |
| '<(shared_intermediate_mozc_dir)/data/images/android/svg/asis.zip', |
| ], |
| 'conditions': [ |
| ['OS=="linux" or OS=="mac"', { |
| 'inputs': ['<!@(ls -1 ../../data/images/android/svg/*.svg)'] |
| }, { |
| # TODO: Support Windows. |
| 'inputs': ['<(dummy_input_file)'] |
| }], |
| ], |
| 'action': [ |
| # TODO: Support Windows. |
| 'zip', |
| '-q', # quiet operation |
| '-1', # compress faster |
| '-j', # don't record directory names |
| '<@(_outputs)', |
| '<@(_inputs)', |
| ], |
| }, |
| ], |
| }, |
| { |
| 'target_name': 'gen_mozc_drawable', |
| 'type': 'none', |
| 'dependencies': [ |
| 'copy_asis_svg', |
| 'transform_template_svg', |
| ], |
| 'actions': [ |
| { |
| 'action_name': 'generate_pic_files', |
| 'inputs': [ |
| '<(shared_intermediate_mozc_dir)/data/images/android/svg/asis.zip', |
| '<(shared_intermediate_mozc_dir)/data/images/android/svg/transformed.zip', |
| '../gen_mozc_drawable.py', |
| ], |
| 'outputs': [ |
| '<(shared_intermediate_mozc_dir)/data/images/android/svg/gen_mozc_drawable.log', |
| ], |
| 'dependencies': ['copy_resources'], |
| 'action': [ |
| 'python', '../gen_mozc_drawable.py', |
| '--svg_paths=<(shared_intermediate_mozc_dir)/data/images/android/svg/asis.zip,<(shared_intermediate_mozc_dir)/data/images/android/svg/transformed.zip', |
| '--output_dir=<(sdk_resources_dir)/res/raw', |
| '--build_log=<(shared_intermediate_mozc_dir)/data/images/android/svg/gen_mozc_drawable.log', |
| ], |
| }, |
| ], |
| }, |
| ], |
| } |