1# Copyright (c) 2012 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5# This file is meant to be included into a target to provide a rule 6# to package prebuilt Java JARs in a consistent manner. 7# 8# To use this, create a gyp target with the following form: 9# { 10# 'target_name': 'my-package_java', 11# 'type': 'none', 12# 'variables': { 13# 'jar_path': 'path/to/your.jar', 14# }, 15# 'includes': ['path/to/this/gypi/file'], 16# } 17# 18# Required variables: 19# jar_path - The path to the prebuilt Java JAR file. 20 21{ 22 'dependencies': [ 23 '<(DEPTH)/build/android/setup.gyp:build_output_dirs' 24 ], 25 'variables': { 26 'dex_path': '<(PRODUCT_DIR)/lib.java/<(_target_name).dex.jar', 27 'intermediate_dir': '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)', 28 'android_jar': '<(android_sdk)/android.jar', 29 'input_jars_paths': [ '<(android_jar)' ], 30 'proguard_config%': '', 31 'proguard_preprocess%': '0', 32 'variables': { 33 'variables': { 34 'proguard_preprocess%': 0, 35 }, 36 'conditions': [ 37 ['proguard_preprocess == 1', { 38 'dex_input_jar_path': '<(intermediate_dir)/<(_target_name).pre.jar' 39 }, { 40 'dex_input_jar_path': '<(jar_path)' 41 }], 42 ], 43 }, 44 'dex_input_jar_path': '<(dex_input_jar_path)', 45 }, 46 'all_dependent_settings': { 47 'variables': { 48 'input_jars_paths': ['<(dex_input_jar_path)'], 49 'library_dexed_jars_paths': ['<(dex_path)'], 50 }, 51 }, 52 'conditions' : [ 53 ['proguard_preprocess == 1', { 54 'actions': [ 55 { 56 'action_name': 'proguard_<(_target_name)', 57 'message': 'Proguard preprocessing <(_target_name) jar', 58 'inputs': [ 59 '<(android_sdk_root)/tools/proguard/bin/proguard.sh', 60 '<(DEPTH)/build/android/gyp/util/build_utils.py', 61 '<(DEPTH)/build/android/gyp/proguard.py', 62 '<(jar_path)', 63 '<(proguard_config)', 64 ], 65 'outputs': [ 66 '<(dex_input_jar_path)', 67 ], 68 'action': [ 69 'python', '<(DEPTH)/build/android/gyp/proguard.py', 70 '--proguard-path=<(android_sdk_root)/tools/proguard/bin/proguard.sh', 71 '--input-path=<(jar_path)', 72 '--output-path=<(dex_input_jar_path)', 73 '--proguard-config=<(proguard_config)', 74 '--classpath=>(input_jars_paths)', 75 76 # TODO(newt): remove this once http://crbug.com/177552 is fixed in ninja. 77 '--ignore=>!(echo \'>(_inputs)\' | md5sum)', 78 ] 79 }, 80 ], 81 }], 82 ], 83 'actions': [ 84 { 85 'action_name': 'dex_<(_target_name)', 86 'message': 'Dexing <(_target_name) jar', 87 'inputs': [ 88 '<(DEPTH)/build/android/gyp/util/build_utils.py', 89 '<(DEPTH)/build/android/gyp/dex.py', 90 '<(dex_input_jar_path)', 91 ], 92 'outputs': [ 93 '<(dex_path)', 94 ], 95 'action': [ 96 'python', '<(DEPTH)/build/android/gyp/dex.py', 97 '--dex-path=<(dex_path)', 98 '--android-sdk-tools=<(android_sdk_tools)', 99 100 # TODO(newt): remove this once http://crbug.com/177552 is fixed in ninja. 101 '--ignore=>!(echo \'>(_inputs)\' | md5sum)', 102 103 '<(dex_input_jar_path)', 104 ] 105 }, 106 107 ], 108} 109