use of com.sun.tools.javac.util.Options in project ceylon-compiler by ceylon.
the class CeylonCompileTool method initialize.
@Override
public void initialize(CeylonTool mainTool) throws IOException {
compiler = new Main("ceylon compile");
Options options = Options.instance(new Context());
if (modulesOrFiles.isEmpty() && !javac.contains("-help") && !javac.contains("-X") && !javac.contains("-version")) {
throw new IllegalStateException("Argument moduleOrFile should appear at least 1 time(s)");
}
arguments = new ArrayList<>();
if (cwd != null) {
arguments.add("-cwd");
arguments.add(cwd.getPath());
}
for (File source : applyCwd(this.sources)) {
arguments.add("-src");
arguments.add(source.getPath());
options.addMulti(OptionName.SOURCEPATH, source.getPath());
}
for (File resource : applyCwd(this.resources)) {
arguments.add("-res");
arguments.add(resource.getPath());
//options.addMulti(OptionName.RESOURCEPATH, resource.getPath());
}
if (resourceRoot != null) {
arguments.add("-resroot");
arguments.add(resourceRoot);
}
if (continueOnErrors) {
arguments.add("-continue");
}
if (progress) {
arguments.add("-progress");
}
if (offline) {
arguments.add("-offline");
}
if (timeout != -1) {
arguments.add("-timeout");
arguments.add(String.valueOf(timeout));
}
if (flatClasspath) {
arguments.add("-flat-classpath");
}
if (autoExportMavenDependencies) {
arguments.add("-auto-export-maven-dependencies");
}
if (overrides != null) {
arguments.add("-overrides");
if (overrides.startsWith("classpath:")) {
arguments.add(overrides);
} else {
arguments.add(applyCwd(new File(overrides)).getPath());
}
}
if (noOsgi) {
arguments.add("-noosgi");
}
if (osgiProvidedBundles != null && !osgiProvidedBundles.isEmpty()) {
arguments.add("-osgi-provided-bundles");
arguments.add(osgiProvidedBundles);
}
if (noPom) {
arguments.add("-nopom");
}
if (pack200) {
arguments.add("-pack200");
}
if (verbose != null) {
if (verbose.isEmpty()) {
arguments.add("-verbose");
} else {
arguments.add("-verbose:" + verbose);
}
}
if (out != null) {
arguments.add("-out");
arguments.add(out);
}
if (user != null) {
arguments.add("-user");
arguments.add(user);
}
if (pass != null) {
arguments.add("-pass");
arguments.add(pass);
}
String fileEncoding = encoding;
if (fileEncoding == null) {
fileEncoding = DefaultToolOptions.getDefaultEncoding();
}
if (fileEncoding != null) {
JavacOption encodingOpt = getJavacOpt(OptionName.ENCODING.toString());
validateWithJavac(options, encodingOpt, OptionName.ENCODING.toString(), fileEncoding, "option.error.syntax.encoding");
arguments.add(OptionName.ENCODING.toString());
arguments.add(fileEncoding);
}
if (systemRepo != null) {
arguments.add("-sysrep");
arguments.add(systemRepo);
}
if (cacheRepo != null) {
arguments.add("-cacherep");
arguments.add(cacheRepo);
}
if (noDefRepos) {
arguments.add("-nodefreps");
}
if (repo != null) {
for (URI uri : this.repo) {
arguments.add("-rep");
arguments.add(uri.toString());
}
}
if (suppressWarnings != null) {
arguments.add("-suppress-warnings");
arguments.add(EnumUtil.enumsToString(suppressWarnings));
}
addJavacArguments(arguments);
List<File> srcs = applyCwd(this.sources);
List<String> expandedModulesOrFiles = ModuleWildcardsHelper.expandWildcards(srcs, this.modulesOrFiles, Backend.Java);
if (expandedModulesOrFiles.isEmpty()) {
throw new ToolUsageError("No modules or source files to compile");
}
JavacOption sourceFileOpt = getJavacOpt(OptionName.SOURCEFILE.toString());
if (sourceFileOpt != null) {
for (String moduleOrFile : expandedModulesOrFiles) {
validateWithJavac(options, sourceFileOpt, moduleOrFile, moduleOrFile, "argument.error");
}
}
validateSourceArguments(expandedModulesOrFiles);
arguments.addAll(expandedModulesOrFiles);
if (verbose != null) {
System.out.println(arguments);
System.out.flush();
}
}
use of com.sun.tools.javac.util.Options in project ceylon-compiler by ceylon.
the class Test method createFileManager.
JavacFileManager createFileManager(boolean useOptimizedZip, boolean useSymbolFile) {
Context c = new Context();
Options options = Options.instance(c);
options.put("useOptimizedZip", Boolean.toString(useOptimizedZip));
if (!useSymbolFile) {
options.put("ignore.symbol.file", "true");
}
return new JavacFileManager(c, false, null);
}
use of com.sun.tools.javac.util.Options in project lombok by rzwitserloot.
the class Javac6BasedLombokOptions method replaceWithDelombokOptions.
public static Javac6BasedLombokOptions replaceWithDelombokOptions(Context context) {
Options options = Options.instance(context);
context.put(optionsKey, (Options) null);
Javac6BasedLombokOptions result = new Javac6BasedLombokOptions(context);
result.putAll(options);
return result;
}
use of com.sun.tools.javac.util.Options in project lombok by rzwitserloot.
the class Javac8BasedLombokOptions method replaceWithDelombokOptions.
public static Javac8BasedLombokOptions replaceWithDelombokOptions(Context context) {
Options options = Options.instance(context);
context.put(optionsKey, (Options) null);
Javac8BasedLombokOptions result = new Javac8BasedLombokOptions(context);
result.putAll(options);
return result;
}
use of com.sun.tools.javac.util.Options in project ceylon-compiler by ceylon.
the class JavacTool method processOptions.
public static void processOptions(Context context, JavaFileManager fileManager, Iterable<String> options) {
if (options == null)
return;
Options optionTable = Options.instance(context);
JavacOption[] recognizedOptions = RecognizedOptions.getJavacToolOptions(new GrumpyHelper());
Iterator<String> flags = options.iterator();
while (flags.hasNext()) {
String flag = flags.next();
int j;
for (j = 0; j < recognizedOptions.length; j++) if (recognizedOptions[j].matches(flag))
break;
if (j == recognizedOptions.length) {
if (fileManager.handleOption(flag, flags)) {
continue;
} else {
String msg = Main.getLocalizedString("err.invalid.flag", flag);
throw new IllegalArgumentException(msg);
}
}
JavacOption option = recognizedOptions[j];
if (option.hasArg()) {
if (!flags.hasNext()) {
String msg = Main.getLocalizedString("err.req.arg", flag);
throw new IllegalArgumentException(msg);
}
String operand = flags.next();
if (option.process(optionTable, flag, operand))
// in case of errors
throw new IllegalArgumentException(flag + " " + operand);
} else {
if (option.process(optionTable, flag))
// in case of errors
throw new IllegalArgumentException(flag);
}
}
}
Aggregations