2012-06-12 09:00:05 +04:00
|
|
|
# Copyright (c) 2012 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 build Java aidl files in a consistent manner.
|
|
|
|
#
|
|
|
|
# To use this, create a gyp target with the following form:
|
|
|
|
# {
|
|
|
|
# 'target_name': 'aidl_aidl-file-name',
|
|
|
|
# 'type': 'none',
|
|
|
|
# 'variables': {
|
2012-07-11 03:12:06 +04:00
|
|
|
# 'aidl_interface_file': '<interface-path>/<interface-file>.aidl',
|
2012-12-14 09:58:11 +04:00
|
|
|
# 'aidl_import_include': '<(DEPTH)/<path-to-src-dir>',
|
2012-06-12 09:00:05 +04:00
|
|
|
# },
|
|
|
|
# 'sources': {
|
2012-07-11 03:12:06 +04:00
|
|
|
# '<input-path1>/<input-file1>.aidl',
|
|
|
|
# '<input-path2>/<input-file2>.aidl',
|
2012-06-12 09:00:05 +04:00
|
|
|
# ...
|
|
|
|
# },
|
2012-07-11 03:12:06 +04:00
|
|
|
# 'includes': ['<path-to-this-file>/java_aidl.gypi'],
|
2012-06-12 09:00:05 +04:00
|
|
|
# }
|
|
|
|
#
|
|
|
|
#
|
2012-07-11 03:12:06 +04:00
|
|
|
# The generated java files will be:
|
|
|
|
# <(PRODUCT_DIR)/lib.java/<input-file1>.java
|
|
|
|
# <(PRODUCT_DIR)/lib.java/<input-file2>.java
|
|
|
|
# ...
|
2012-08-13 22:35:49 +04:00
|
|
|
#
|
2012-12-14 09:58:11 +04:00
|
|
|
# Optional variables:
|
|
|
|
# aidl_import_include - This should be an absolute path to your java src folder
|
|
|
|
# that contains the classes that are imported by your aidl files.
|
|
|
|
#
|
2012-08-13 22:35:49 +04:00
|
|
|
# TODO(cjhopman): dependents need to rebuild when this target's inputs have changed.
|
2012-06-12 09:00:05 +04:00
|
|
|
|
|
|
|
{
|
2012-12-14 09:58:11 +04:00
|
|
|
'variables': {
|
2015-06-05 02:28:26 +03:00
|
|
|
'aidl_path%': '<(android_sdk_tools)/aidl',
|
2013-02-21 02:39:17 +04:00
|
|
|
'intermediate_dir': '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/aidl',
|
2012-12-14 09:58:11 +04:00
|
|
|
'aidl_import_include%': '',
|
|
|
|
'additional_aidl_arguments': [],
|
2012-12-16 02:30:27 +04:00
|
|
|
'additional_aidl_input_paths': [],
|
2012-12-14 09:58:11 +04:00
|
|
|
},
|
2013-02-21 02:39:17 +04:00
|
|
|
'direct_dependent_settings': {
|
|
|
|
'variables': {
|
|
|
|
'generated_src_dirs': ['<(intermediate_dir)/'],
|
|
|
|
},
|
|
|
|
},
|
2012-12-14 09:58:11 +04:00
|
|
|
'conditions': [
|
Make test apks only dex files not in tested apk (proguard version)
At runtime, the classloader will look for classes in both apk's dex
files. In the standard Android build system, an instrumentation test
apk's dex file does not include the classes included in the tested apk's
dex file.
To do this, when doing obfuscation for an apk, write the list of
libraries included in the obfuscated jar and the list of proguard config
files. Then, when proguarding the test apk's code, exclude those
libraries included in the tested apk, use the configs from the tested
apk, and apply the proguard mapping (the renames from obfuscation). Also
add some extra test-specific proguard options.
Now that the test apk does not bundle its own copy of all the tested
apk's classes, some things may need to be kept in the main apk just for
tests. However, we already keep everything in org.chromium.** and
com.google.android.apps.** because of the fact that the test apk was
using its own copy of all the classes and so we couldn't depend on the
tests to actually catch us from over-optimizing with proguard.
BUG=272790
Review URL: https://codereview.chromium.org/321883002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@277257 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-06-14 23:51:58 +04:00
|
|
|
['aidl_import_include != ""', {
|
2012-12-14 09:58:11 +04:00
|
|
|
'variables': {
|
2012-12-16 02:30:27 +04:00
|
|
|
'additional_aidl_arguments': [ '-I<(aidl_import_include)' ],
|
2014-08-30 02:14:28 +04:00
|
|
|
'additional_aidl_input_paths': [ '<!@(find <(aidl_import_include) -name "*.java" | sort)' ],
|
2012-12-14 09:58:11 +04:00
|
|
|
}
|
|
|
|
}],
|
|
|
|
],
|
2012-06-12 09:00:05 +04:00
|
|
|
'rules': [
|
|
|
|
{
|
|
|
|
'rule_name': 'compile_aidl',
|
|
|
|
'extension': 'aidl',
|
|
|
|
'inputs': [
|
|
|
|
'<(android_sdk)/framework.aidl',
|
|
|
|
'<(aidl_interface_file)',
|
2012-12-16 02:30:27 +04:00
|
|
|
'<@(additional_aidl_input_paths)',
|
2012-06-12 09:00:05 +04:00
|
|
|
],
|
|
|
|
'outputs': [
|
2013-02-21 02:39:17 +04:00
|
|
|
'<(intermediate_dir)/<(RULE_INPUT_ROOT).java',
|
2012-06-12 09:00:05 +04:00
|
|
|
],
|
|
|
|
'action': [
|
2015-06-05 02:28:26 +03:00
|
|
|
'<(aidl_path)',
|
2012-06-12 09:00:05 +04:00
|
|
|
'-p<(android_sdk)/framework.aidl',
|
|
|
|
'-p<(aidl_interface_file)',
|
2012-12-14 09:58:11 +04:00
|
|
|
'<@(additional_aidl_arguments)',
|
2012-06-12 09:00:05 +04:00
|
|
|
'<(RULE_INPUT_PATH)',
|
2013-02-21 02:39:17 +04:00
|
|
|
'<(intermediate_dir)/<(RULE_INPUT_ROOT).java',
|
2012-06-12 09:00:05 +04:00
|
|
|
],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
}
|