Index: build/java_binary.gypi |
diff --git a/build/host_jar.gypi b/build/java_binary.gypi |
similarity index 77% |
copy from build/host_jar.gypi |
copy to build/java_binary.gypi |
index 6ccc1bdbad5a7635a6acb867aab474f8dae99966..e76168bc3772b35d341999333dfbded84af56862 100644 |
--- a/build/host_jar.gypi |
+++ b/build/java_binary.gypi |
@@ -1,13 +1,14 @@ |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
+# Copyright 2015 The Chromium Authors. All rights reserved. |
jbudorick
2015/04/02 14:21:43
So this is in addition to build/host_jar.gypi? Do
mikecase (-- gone --)
2015/04/02 17:11:39
You're right. It looks like most of the things usi
|
# 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 |
-# a JAR file for use on a host in a consistent manner. |
+# an executable from java code. The executable will be in the output folder's |
+# /bin/ directory. |
# |
# To use this, create a gyp target with the following form: |
# { |
-# 'target_name': 'my_jar', |
+# 'target_name': 'my_executable_jar', |
# 'type': 'none', |
# 'variables': { |
# 'src_paths': [ |
@@ -16,6 +17,7 @@ |
# 'path/to/individual_file.java', |
# ... |
# ], |
+# 'main_class': 'org.foo.FooMain', |
# }, |
# 'includes': [ 'path/to/this/gypi/file' ], |
# } |
@@ -23,6 +25,8 @@ |
# Required variables: |
# src_paths - A list of all paths containing java files that should be |
# included in the jar. Paths can be either directories or files. |
+# main_class - The class containing the main() function that should be called |
+# when running the jar file. |
# Optional/automatic variables: |
# excluded_src_paths - A list of all paths that should be excluded from |
# the jar. |
@@ -30,8 +34,6 @@ |
# generated at build time. |
# input_jars_paths - A list of paths to the jars that should be included |
# in the classpath. |
-# main_class - The class containing the main() function that should be called |
-# when running the jar file. |
# jar_excluded_classes - A list of .class files that should be excluded |
# from the jar. |
@@ -49,7 +51,6 @@ |
'jar_excluded_classes': [], |
'jar_name': '<(_target_name).jar', |
'jar_path': '<(jar_dir)/<(jar_name)', |
- 'main_class%': '', |
'stamp': '<(intermediate_dir)/jar.stamp', |
}, |
'all_dependent_settings': { |
@@ -71,9 +72,6 @@ |
['"<(jar_excluded_classes)" != ""', { |
'extra_options': ['--excluded-classes=<(jar_excluded_classes)'] |
}], |
- ['">(main_class)" != ""', { |
- 'extra_options': ['--main-class=>(main_class)'] |
- }] |
], |
}, |
'inputs': [ |
@@ -97,6 +95,26 @@ |
'^@(java_sources)', |
], |
}, |
+ { |
+ 'action_name': 'create_java_binary_script_<(_target_name)', |
+ 'message': 'Creating java binary script <(_target_name)', |
+ 'variables': { |
+ 'output': '<(PRODUCT_DIR)/bin/<(_target_name)', |
+ }, |
+ 'inputs': [ |
+ '<(DEPTH)/build/android/gyp/create_java_binary_script.py', |
+ '<(jar_path)', |
+ ], |
+ 'outputs': [ |
+ '<(output)', |
+ ], |
+ 'action': [ |
+ 'python', '<(DEPTH)/build/android/gyp/create_java_binary_script.py', |
+ '--classpath=>(input_jars_paths)', |
+ '--jar-path=<(jar_path)', |
+ '--output=<(output)', |
+ '--main-class=>(main_class)', |
+ ], |
+ } |
] |
-} |
- |
+} |