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; |