use of org.eclipse.ceylon.compiler.java.tools.CeyloncTool in project ceylon by eclipse.
the class CompilerTests method getCompilerTask.
protected CeyloncTaskImpl getCompilerTask(List<String> initialOptions, DiagnosticListener<? super FileObject> diagnosticListener, List<String> modules, String... sourcePaths) {
java.util.List<File> sourceFiles = new ArrayList<File>(sourcePaths.length);
for (String file : sourcePaths) {
sourceFiles.add(new File(getPackagePath(), file));
}
CeyloncTool runCompiler = makeCompiler();
CeyloncFileManager runFileManager = makeFileManager(runCompiler, diagnosticListener);
// make sure the destination repo exists
new File(destDir).mkdirs();
List<String> options = new LinkedList<String>();
options.addAll(initialOptions);
if (!options.contains("-out"))
options.addAll(Arrays.asList("-out", destDir));
if (!options.contains("-src"))
options.addAll(Arrays.asList("-src", getSourcePath()));
if (!options.contains("-cacherep"))
options.addAll(Arrays.asList("-cacherep", getCachePath()));
if (!options.contains("-sysrep"))
options.addAll(Arrays.asList("-sysrep", getSysRepPath()));
if (!options.contains("-cp"))
options.addAll(Arrays.asList("-cp", getClassPathAsPath()));
boolean hasVerbose = false;
for (String option : options) {
if (option.startsWith("-verbose")) {
hasVerbose = true;
break;
}
}
if (!hasVerbose)
options.add("-verbose:ast,code");
Iterable<? extends JavaFileObject> compilationUnits1 = runFileManager.getJavaFileObjectsFromFiles(sourceFiles);
return runCompiler.getTask(null, runFileManager, diagnosticListener, options, modules, compilationUnits1);
}
use of org.eclipse.ceylon.compiler.java.tools.CeyloncTool in project ceylon by eclipse.
the class CeylonDocToolTests method compileJavaModule.
private void compileJavaModule(String pathname, String... fileNames) throws Exception {
CeyloncTool compiler = new CeyloncTool();
List<String> options = Arrays.asList("-src", pathname, "-out", "build/ceylon-cars", "-sysrep", "../dist/dist/repo", "-cp", CompilerTests.getClassPathAsPath());
JavacFileManager fileManager = compiler.getStandardFileManager(null, null, null);
List<String> qualifiedNames = new ArrayList<String>(fileNames.length);
for (String name : fileNames) {
qualifiedNames.add(pathname + File.separator + name);
}
Iterable<? extends JavaFileObject> fileObjects = fileManager.getJavaFileObjectsFromStrings(qualifiedNames);
JavacTask task = compiler.getTask(null, null, null, options, null, fileObjects);
Boolean ret = task.call();
Assert.assertEquals("Compilation failed", Boolean.TRUE, ret);
}
use of org.eclipse.ceylon.compiler.java.tools.CeyloncTool in project ceylon by eclipse.
the class CeylonDocToolTests method compile.
private void compile(String pathname, String destDir, String moduleName) throws Exception {
CeyloncTool compiler = new CeyloncTool();
List<String> options = Arrays.asList("-src", pathname, "-out", destDir, "-sysrep", "../dist/dist/repo", "-cp", CompilerTests.getClassPathAsPath());
JavacTask task = compiler.getTask(null, null, null, options, Arrays.asList(moduleName), null);
Boolean ret = task.call();
Assert.assertEquals("Compilation failed", Boolean.TRUE, ret);
}
use of org.eclipse.ceylon.compiler.java.tools.CeyloncTool in project ceylon by eclipse.
the class JavaCompilerImpl method compile.
@SuppressWarnings("deprecation")
@Override
public boolean compile(CompilerOptions options, CompilationListener listener) {
CeyloncTool compiler = new CeyloncTool();
CompilationListenerAdapter diagnosticListener = new CompilationListenerAdapter(listener);
Writer writer = options.getOutWriter();
if (!options.isVerbose() && writer == null) {
// make the tool shut the hell up
writer = new NullWriter();
}
JavacFileManager fileManager = compiler.getStandardFileManager(writer, diagnosticListener, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromFiles(options.getFiles());
CeyloncTaskImpl compilerTask = compiler.getTask(null, fileManager, diagnosticListener, translateOptions(options), options.getModules(), compilationUnits);
compilerTask.setTaskListener(diagnosticListener);
ExitState state = compilerTask.call2();
// print any helpful info if required
if (options.isVerbose() && state.abortingException != null)
state.abortingException.printStackTrace();
return state.ceylonState == CeylonState.OK;
}
Aggregations