< prev index next >

src/jdk.incubator.jextract/share/classes/jdk/incubator/jextract/tool/Main.java

Print this page




 174         String targetPackage = optionSet.has("t") ? (String) optionSet.valueOf("t") : "";
 175         builder.setTargetPackage(targetPackage);
 176 
 177         Options options = builder.build();
 178 
 179         Path header = Paths.get(optionSet.nonOptionArguments().get(0).toString());
 180         if (!Files.isReadable(header)) {
 181             err.println(format("cannot.read.header.file", header));
 182             return INPUT_ERROR;
 183         }
 184 
 185         //parse
 186         JextractTask jextractTask = JextractTask.newTask(options.compile, header);
 187         Declaration.Scoped toplevel = jextractTask.parse(options.clangArgs.toArray(new String[0]));
 188 
 189         //filter
 190         if (!options.filters.isEmpty()) {
 191             toplevel = Filter.filter(toplevel, options.filters.toArray(new String[0]));
 192         }
 193 




 194         if (Main.DEBUG) {
 195             System.out.println(toplevel);
 196         }
 197 
 198         Path output = Path.of(options.outputDir);
 199         //generate
 200         try {
 201             JavaFileObject[] files = HandleSourceFactory.generateWrapped(
 202                 toplevel,
 203                 header.getFileName().toString().replace(".h", "_h"),
 204                 options.targetPackage,
 205                 options.libraryNames,
 206                 options.libraryPaths);
 207             jextractTask.write(output, files);
 208         } catch (RuntimeException re) {
 209             err.println(re);
 210             if (Main.DEBUG) {
 211                 re.printStackTrace(err);
 212             }
 213             return RUNTIME_ERROR;




 174         String targetPackage = optionSet.has("t") ? (String) optionSet.valueOf("t") : "";
 175         builder.setTargetPackage(targetPackage);
 176 
 177         Options options = builder.build();
 178 
 179         Path header = Paths.get(optionSet.nonOptionArguments().get(0).toString());
 180         if (!Files.isReadable(header)) {
 181             err.println(format("cannot.read.header.file", header));
 182             return INPUT_ERROR;
 183         }
 184 
 185         //parse
 186         JextractTask jextractTask = JextractTask.newTask(options.compile, header);
 187         Declaration.Scoped toplevel = jextractTask.parse(options.clangArgs.toArray(new String[0]));
 188 
 189         //filter
 190         if (!options.filters.isEmpty()) {
 191             toplevel = Filter.filter(toplevel, options.filters.toArray(new String[0]));
 192         }
 193 
 194         //handle names
 195         GroupNameHandler nameHandler = new GroupNameHandler();
 196         toplevel = nameHandler.fillNames(toplevel);
 197 
 198         if (Main.DEBUG) {
 199             System.out.println(toplevel);
 200         }
 201 
 202         Path output = Path.of(options.outputDir);
 203         //generate
 204         try {
 205             JavaFileObject[] files = HandleSourceFactory.generateWrapped(
 206                 toplevel,
 207                 header.getFileName().toString().replace(".h", "_h"),
 208                 options.targetPackage,
 209                 options.libraryNames,
 210                 options.libraryPaths);
 211             jextractTask.write(output, files);
 212         } catch (RuntimeException re) {
 213             err.println(re);
 214             if (Main.DEBUG) {
 215                 re.printStackTrace(err);
 216             }
 217             return RUNTIME_ERROR;


< prev index next >