Index: tools/compile_java/compile_java.py |
diff --git a/tools/compile_java/compile_java.py b/tools/compile_java/compile_java.py |
deleted file mode 100644 |
index d33b4306c00aa755208fdfc8c92687f21fe7cea5..0000000000000000000000000000000000000000 |
--- a/tools/compile_java/compile_java.py |
+++ /dev/null |
@@ -1,202 +0,0 @@ |
-# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
-# for details. All rights reserved. Use of this source code is governed by a |
-# BSD-style license that can be found in the LICENSE file. |
- |
-# This python script compiles a set of java files and puts them all into a |
-# single .jar file. |
- |
-import os |
-import shutil |
-import sys |
-import tempfile |
-from optparse import OptionParser |
- |
-# Filters out all arguments until the next '--' argument |
-# occurs. |
-def ListArgCallback(option, value, parser): |
- if value is None: |
- value = [] |
- |
- for arg in parser.rargs: |
- if arg[:2].startswith('--'): |
- break |
- value.append(arg) |
- |
- del parser.rargs[:len(value)] |
- setattr(parser.values, option.dest, value) |
- |
- |
-# Compiles all the java source files in srcDir. |
-def javaCompile(javac, srcDirectories, srcList, classpath, |
- classOutputDir, buildConfig, javacArgs, |
- sources): |
- # Check & prepare directories. |
- for srcDir in srcDirectories: |
- if not os.path.exists(srcDir): |
- sys.stderr.write('source directory not found: ' + srcDir + '\n') |
- return False |
- |
- if os.path.exists(classOutputDir): |
- shutil.rmtree(classOutputDir) |
- os.makedirs(classOutputDir) |
- |
- # Find all java files and write them in a temp file. |
- (tempFileDescriptor, javaFilesTempFileName) = tempfile.mkstemp() |
- javaFilesTempFile = os.fdopen(tempFileDescriptor, "w") |
- try: |
- if srcDirectories: |
- def findJavaFiles(dirName, names): |
- for fileName in names: |
- (base, ext) = os.path.splitext(fileName) |
- if ext == '.java': |
- javaFilesTempFile.write(os.path.join(dirName, fileName) + '\n') |
- for srcDir in srcDirectories: |
- os.path.walk(srcDir, findJavaFiles, None) |
- |
- if srcList: |
- f = open(srcList, 'r') |
- for line in f: |
- javaFilesTempFile.write(os.path.abspath(line)) |
- f.close() |
- |
- javaFilesTempFile.flush() |
- javaFilesTempFile.close() |
- |
- # Prepare javac command. |
- # Use a large enough heap to be able to compile all of the classes in one |
- # big compilation step. |
- command = [javac, '-J-Xmx256m'] |
- |
- if buildConfig == 'Debug': |
- command.append('-g') |
- |
- if srcDirectories: |
- command.append('-sourcepath') |
- command.append(os.pathsep.join(srcDirectories)) |
- |
- if classpath: |
- command.append('-classpath') |
- command.append(os.pathsep.join(classpath)) |
- |
- command.append('-d') |
- command.append(classOutputDir) |
- |
- if srcDirectories or srcList: |
- command.append('@' + javaFilesTempFileName) |
- |
- command = command + javacArgs |
- |
- abs_sources = [os.path.abspath(source) for source in sources] |
- |
- command = [' '.join(command)] + abs_sources |
- |
- # Compile. |
- sys.stdout.write(' \\\n '.join(command) + '\n') |
- if os.system(' '.join(command)): |
- sys.stderr.write('java compilation failed\n') |
- return False |
- return True |
- finally: |
- os.remove(javaFilesTempFileName) |
- |
-def copyProperties(propertyFiles, classOutputDir): |
- for property_file in propertyFiles: |
- if not os.path.isfile(property_file): |
- sys.stderr.write('property file not found: ' + property_file + '\n') |
- return False |
- |
- if not os.path.exists(classOutputDir): |
- sys.stderr.write('classes dir not found: ' + classOutputDir + '\n') |
- return False |
- |
- if not propertyFiles: |
- return True |
- |
- command = ['cp'] + propertyFiles + [classOutputDir] |
- commandStr = ' '.join(command) |
- sys.stdout.write(commandStr + '\n') |
- if os.system(commandStr): |
- sys.stderr.write('property file copy failed\n') |
- return False |
- return True |
- |
-def createJar(classOutputDir, jarFileName): |
- if not os.path.exists(classOutputDir): |
- sys.stderr.write('classes dir not found: ' + classOutputDir + '\n') |
- return False |
- |
- command = ['jar', 'cf', jarFileName, '-C', classOutputDir, '.'] |
- commandStr = ' '.join(command) |
- sys.stdout.write(commandStr + '\n') |
- if os.system(commandStr): |
- sys.stderr.write('jar creation failed\n') |
- return False |
- return True |
- |
- |
-def main(): |
- try: |
- # Parse input. |
- parser = OptionParser() |
- parser.add_option("--javac", default="javac", |
- action="store", type="string", |
- help="location of javac command") |
- parser.add_option("--sourceDir", dest="sourceDirs", default=[], |
- action="callback", callback=ListArgCallback, |
- help="specify a list of directories to look for " + |
- ".java files to compile") |
- parser.add_option("--sources", dest="sources", default=[], |
- action="callback", callback=ListArgCallback, |
- help="specify a list of source files to compile") |
- parser.add_option("--sourceList", dest="sourceList", |
- action="store", type="string", |
- help="specify the file that contains the list of Java source files") |
- parser.add_option("--classpath", dest="classpath", default=[], |
- action="append", type="string", |
- help="specify referenced jar files") |
- parser.add_option("--classesDir", |
- action="store", type="string", |
- help="location of intermediate .class files") |
- parser.add_option("--jarFileName", |
- action="store", type="string", |
- help="name of the output jar file") |
- parser.add_option("--buildConfig", |
- action="store", type="string", default='Release', |
- help="Debug or Release") |
- parser.add_option("--javacArgs", dest="javacArgs", default=[], |
- action="callback", callback=ListArgCallback, |
- help="remaining args are passed directly to javac") |
- parser.add_option("--propertyFiles", dest="propertyFiles", default=[], |
- action="callback", callback=ListArgCallback, |
- help="specify a list of property files to copy") |
- |
- (options, args) = parser.parse_args() |
- if not options.classesDir: |
- sys.stderr.write('--classesDir not specified\n') |
- return -1 |
- if not options.jarFileName: |
- sys.stderr.write('--jarFileName not specified\n') |
- return -1 |
- if len(options.sourceDirs) > 0 and options.sourceList: |
- sys.stderr.write("--sourceDir and --sourceList cannot be both specified") |
- return -1 |
- |
- # Compile and put into .jar file. |
- if not javaCompile(options.javac, options.sourceDirs, |
- options.sourceList, options.classpath, |
- options.classesDir, options.buildConfig, |
- options.javacArgs, options.sources): |
- return -1 |
- if not copyProperties(options.propertyFiles, options.classesDir): |
- return -1 |
- if not createJar(options.classesDir, options.jarFileName): |
- return -1 |
- |
- return 0 |
- except Exception, inst: |
- sys.stderr.write('compile_java.py exception\n') |
- sys.stderr.write(str(inst)) |
- return -1 |
- |
-if __name__ == '__main__': |
- sys.exit(main()) |