diff options
author | bulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-19 20:02:55 +0000 |
---|---|---|
committer | bulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-19 20:02:55 +0000 |
commit | e46f661504b9d4c2de4dcb6008b9cde4105f871a (patch) | |
tree | 5577bf583ea221a532ef05a349f6de757823e6ba /build/jni_generator.gypi | |
parent | a5d07699a28d121d0bcabaef645ef7ece9366292 (diff) | |
download | chromium_src-e46f661504b9d4c2de4dcb6008b9cde4105f871a.zip chromium_src-e46f661504b9d4c2de4dcb6008b9cde4105f871a.tar.gz chromium_src-e46f661504b9d4c2de4dcb6008b9cde4105f871a.tar.bz2 |
Uses gyp "rules" rather than "actions" templates for the JNI generator.
This allow finer grain control over what is rebuilt.
Also, since we have approval over the generated header file name,
it greatly simplifies both the generator and also all the gyp files
as they no longer need to list the header file and keep in sync with the
java file, so the process now is as simple as adding a single java file
to the sources.
BUG=137069
TEST=build on android
Review URL: https://chromiumcodereview.appspot.com/10798010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147515 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build/jni_generator.gypi')
-rw-r--r-- | build/jni_generator.gypi | 82 |
1 files changed, 42 insertions, 40 deletions
diff --git a/build/jni_generator.gypi b/build/jni_generator.gypi index b570026..837d9ab 100644 --- a/build/jni_generator.gypi +++ b/build/jni_generator.gypi @@ -6,51 +6,53 @@ # to generate jni bindings for Java-files in a consistent manner. # # To use this, create a gyp target with the following form: -# { -# 'target_name': 'base_jni_headers', -# 'type': 'none', -# 'variables': { -# 'java_sources': [ -# 'android/java/org/chromium/base/BuildInfo.java', -# 'android/java/org/chromium/base/PathUtils.java', -# 'android/java/org/chromium/base/SystemMessageHandler.java', -# ], -# 'jni_headers': [ -# '<(SHARED_INTERMEDIATE_DIR)/base/jni/build_info_jni.h', -# '<(SHARED_INTERMEDIATE_DIR)/base/jni/path_utils_jni.h', -# '<(SHARED_INTERMEDIATE_DIR)/base/jni/system_message_handler_jni.h', -# ], -# }, -# 'includes': [ '../build/jni_generator.gypi' ], -# } +# { +# 'target_name': 'base_jni_headers', +# 'type': 'none', +# 'sources': [ +# 'android/java/src/org/chromium/base/BuildInfo.java', +# ... +# ... +# 'android/java/src/org/chromium/base/SystemMessageHandler.java', +# ], +# 'variables': { +# 'jni_gen_dir': 'base', +# }, +# 'includes': [ '../build/jni_generator.gypi' ], +# }, # -# The ordering of the java_sources must match the ordering of jni_headers. The -# result is that for each Java file listed in java_sources, the corresponding -# entry in jni_headers contains the JNI bindings produced from running the -# jni_generator on the input file. +# The generated file name pattern can be seen on the "outputs" section below. +# (note that RULE_INPUT_ROOT is the basename for the java file). # # See base/android/jni_generator/jni_generator.py for more info about the # format of generating JNI bindings. { - 'actions': [ - { - 'action_name': 'generate_jni_headers', - 'type': 'none', - 'inputs': [ - '<(DEPTH)/base/android/jni_generator/jni_generator.py', - '<@(java_sources)', - ], - 'outputs': [ - '<@(jni_headers)', - ], - 'action': [ - 'python', - '<(DEPTH)/base/android/jni_generator/jni_generator.py', - '-o', - '<@(_inputs)', - '<@(_outputs)', - ], - }, + 'variables': { + 'jni_generator': '<(DEPTH)/base/android/jni_generator/jni_generator.py', + }, + 'rules': [ + { + 'rule_name': 'generate_jni_headers', + 'extension': 'java', + 'inputs': [ + '<(jni_generator)', + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/<(jni_gen_dir)/jni/<(RULE_INPUT_ROOT)_jni.h', + ], + 'action': [ + '<(jni_generator)', + '--input_file', + '<(RULE_INPUT_PATH)', + '--output_dir', + '<(SHARED_INTERMEDIATE_DIR)/<(jni_gen_dir)/jni', + ], + 'message': 'Generating JNI bindings from <(RULE_INPUT_PATH)', + 'process_outputs_as_sources': 1, + }, ], + # This target exports a hard dependency because it generates header + # files. + 'hard_dependency': 1, } |