Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3401)

Unified Diff: build/android/gyp/javac.py

Issue 269943005: Add android_library template (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/gyp/jar_toc.py ('k') | build/android/gyp/util/build_utils.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/gyp/javac.py
diff --git a/build/android/gyp/javac.py b/build/android/gyp/javac.py
index 599f5883ec9274d2745c336c8f5eb6c0eb4b8316..ec2f22aa2b7ddaa667dc45bffc3efe8708f12756 100755
--- a/build/android/gyp/javac.py
+++ b/build/android/gyp/javac.py
@@ -52,23 +52,22 @@ def ColorJavacOutput(output):
return '\n'.join(map(ApplyColor, output.split('\n')))
+
def DoJavac(
- classpath, javac_includes, classes_dir, chromium_code, java_files):
- if javac_includes:
- javac_includes = build_utils.ParseGypList(javac_includes)
- filtered_java_files = []
- for f in java_files:
- for include in javac_includes:
- if fnmatch.fnmatch(f, include):
- filtered_java_files.append(f)
- break
- java_files = filtered_java_files
+ classpath, classes_dir, chromium_code, java_files):
+ """Runs javac.
+
+ Builds |java_files| with the provided |classpath| and puts the generated
+ .class files into |classes_dir|. If |chromium_code| is true, extra lint
+ checking will be enabled.
+ """
# Compiling guava with certain orderings of input files causes a compiler
# crash... Sorted order works, so use that.
# See https://code.google.com/p/guava-libraries/issues/detail?id=950
+ # TODO(cjhopman): Remove this when we have update guava or the compiler to a
+ # version without this problem.
java_files.sort()
- classpath = build_utils.ParseGypList(classpath)
jar_inputs = []
for path in classpath:
@@ -107,22 +106,32 @@ def DoJavac(
input_strings=javac_cmd)
-def main():
+def main(argv):
colorama.init()
+ argv = build_utils.ExpandFileArgs(argv)
+
parser = optparse.OptionParser()
build_utils.AddDepfileOption(parser)
parser.add_option(
'--src-gendirs',
help='Directories containing generated java files.')
- parser.add_option('--classpath', help='Classpath for javac.')
+ parser.add_option(
+ '--java-srcjars',
+ help='List of srcjars to include in compilation.')
+ parser.add_option(
+ '--classpath',
+ action='append',
+ help='Classpath for javac. If this is specified multiple times, they '
+ 'will all be appended to construct the classpath.')
parser.add_option(
'--javac-includes',
- help='A list of file patterns. If provided, only java files that match' +
+ help='A list of file patterns. If provided, only java files that match'
'one of the patterns will be compiled.')
parser.add_option(
'--jar-excluded-classes',
+ default='',
help='List of .class file patterns to exclude from the jar.')
parser.add_option(
@@ -138,17 +147,39 @@ def main():
parser.add_option('--stamp', help='Path to touch on success.')
- options, args = parser.parse_args()
+ options, args = parser.parse_args(argv)
+
+ classpath = []
+ for arg in options.classpath:
+ classpath += build_utils.ParseGypList(arg)
java_files = args
if options.src_gendirs:
src_gendirs = build_utils.ParseGypList(options.src_gendirs)
java_files += build_utils.FindInDirectories(src_gendirs, '*.java')
- with build_utils.TempDir() as classes_dir:
+ with build_utils.TempDir() as temp_dir:
+ classes_dir = os.path.join(temp_dir, 'classes')
+ os.makedirs(classes_dir)
+ if options.java_srcjars:
+ java_dir = os.path.join(temp_dir, 'java')
+ os.makedirs(java_dir)
+ for srcjar in build_utils.ParseGypList(options.java_srcjars):
+ build_utils.ExtractAll(srcjar, path=java_dir)
+ java_files += build_utils.FindInDirectory(java_dir, '*.java')
+
+ if options.javac_includes:
+ javac_includes = build_utils.ParseGypList(options.javac_includes)
+ filtered_java_files = []
+ for f in java_files:
+ for include in javac_includes:
+ if fnmatch.fnmatch(f, include):
+ filtered_java_files.append(f)
+ break
+ java_files = filtered_java_files
+
DoJavac(
- options.classpath,
- options.javac_includes,
+ classpath,
classes_dir,
options.chromium_code,
java_files)
@@ -170,13 +201,13 @@ def main():
if options.depfile:
build_utils.WriteDepfile(
options.depfile,
- build_utils.GetPythonDependencies())
+ classpath + build_utils.GetPythonDependencies())
if options.stamp:
build_utils.Touch(options.stamp)
if __name__ == '__main__':
- sys.exit(main())
+ sys.exit(main(sys.argv[1:]))
« no previous file with comments | « build/android/gyp/jar_toc.py ('k') | build/android/gyp/util/build_utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698