< prev index next >
src/jdk.jextract/share/classes/com/sun/tools/jextract/Main.java
Print this page
*** 83,103 ****
throw new IllegalArgumentException(format("not.a.directory", kv.key));
}
}
Utils.validPackageName(pkgName);
! ctx.usePackageForFolder(p, pkgName);
! }
!
! private void processHeader(Object header) {
! Path p = Paths.get((String) header);
! if (!Files.isReadable(p)) {
! throw new IllegalArgumentException(format("cannot.read.header.file", header));
! }
! p = p.toAbsolutePath();
! ctx.usePackageForFolder(p.getParent(), targetPackage);
! ctx.addSource(p);
}
private void setupLogging(Level level) {
Logger logger = ctx.logger;
logger.setUseParentHandlers(false);
--- 83,93 ----
throw new IllegalArgumentException(format("not.a.directory", kv.key));
}
}
Utils.validPackageName(pkgName);
! ctx.addPackageMapping(p, pkgName);
}
private void setupLogging(Level level) {
Logger logger = ctx.logger;
logger.setUseParentHandlers(false);
*** 249,270 ****
}
} else if (infer_rpath) {
ctx.err.println(format("warn.rpath.auto.without.L"));
}
- targetPackage = options.has("t") ? (String) options.valueOf("t") : "";
- if (!targetPackage.isEmpty()) {
- Utils.validPackageName(targetPackage);
- }
-
if (options.has("m")) {
options.valuesOf("m").forEach(this::processPackageMapping);
}
try {
! options.nonOptionArguments().stream().forEach(this::processHeader);
! ctx.parse();
} catch (RuntimeException re) {
ctx.err.println(re.getMessage());
if (Main.DEBUG) {
re.printStackTrace(ctx.err);
}
--- 239,269 ----
}
} else if (infer_rpath) {
ctx.err.println(format("warn.rpath.auto.without.L"));
}
if (options.has("m")) {
options.valuesOf("m").forEach(this::processPackageMapping);
}
+ final Writer writer;
+
try {
! for (Object header : options.nonOptionArguments()) {
! Path p = Paths.get((String)header);
! if (!Files.isReadable(p)) {
! throw new IllegalArgumentException(format("cannot.read.header.file", header));
! }
! p = p.normalize().toAbsolutePath();
! ctx.addSource(p);
! }
! targetPackage = options.has("t") ? (String) options.valueOf("t") : "";
! if (!targetPackage.isEmpty()) {
! Utils.validPackageName(targetPackage);
! }
! ctx.setTargetPackage(targetPackage);
! writer = new JextractTool(ctx).processHeaders();
} catch (RuntimeException re) {
ctx.err.println(re.getMessage());
if (Main.DEBUG) {
re.printStackTrace(ctx.err);
}
*** 286,296 ****
Files.createDirectories(dest);
} else if (!Files.isDirectory(dest)) {
ctx.err.println(format("not.a.directory", dest));
return 4;
}
! ctx.collectClassFiles(dest, args, targetPackage);
} catch (IOException ex) {
ctx.err.println(format("cannot.write.class.file", dest, ex));
if (Main.DEBUG) {
ex.printStackTrace(ctx.err);
}
--- 285,295 ----
Files.createDirectories(dest);
} else if (!Files.isDirectory(dest)) {
ctx.err.println(format("not.a.directory", dest));
return 4;
}
! writer.writeClassFiles(dest, args);
} catch (IOException ex) {
ctx.err.println(format("cannot.write.class.file", dest, ex));
if (Main.DEBUG) {
ex.printStackTrace(ctx.err);
}
*** 306,316 ****
} else {
outputName = Paths.get((String)options.nonOptionArguments().get(0)).getFileName() + ".jar";
}
try {
! ctx.collectJarFile(Paths.get(outputName), args, targetPackage);
} catch (IOException ex) {
ctx.err.println(format("cannot.write.jar.file", outputName, ex));
if (Main.DEBUG) {
ex.printStackTrace(ctx.err);
}
--- 305,315 ----
} else {
outputName = Paths.get((String)options.nonOptionArguments().get(0)).getFileName() + ".jar";
}
try {
! writer.writeJarFile(Paths.get(outputName), args);
} catch (IOException ex) {
ctx.err.println(format("cannot.write.jar.file", outputName, ex));
if (Main.DEBUG) {
ex.printStackTrace(ctx.err);
}
*** 318,328 ****
}
return 0;
}
! private static Path getBuiltinHeadersDir() {
return Paths.get(System.getProperty("java.home"), "conf", "jextract");
}
public static void main(String... args) {
Main instance = new Main(new Context());
--- 317,327 ----
}
return 0;
}
! static Path getBuiltinHeadersDir() {
return Paths.get(System.getProperty("java.home"), "conf", "jextract");
}
public static void main(String... args) {
Main instance = new Main(new Context());
< prev index next >