diff options
author | Sven Gothel <[email protected]> | 2015-03-24 03:22:05 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2015-03-24 03:22:05 +0100 |
commit | a2bf42eafb8d6bc270f832c6bd49793465a593d4 (patch) | |
tree | b7d091648e7da78cfc8675a1206560469d822fd3 /src/main/java/com/jogamp/gluegen/jcpp | |
parent | 2ed80887326a12a2b47826c5ea0256f1b0c180d5 (diff) |
Complete JogAmp GlueGen merge: Relocate and patch unit test, strip unrelated files, add note in README.md
Diffstat (limited to 'src/main/java/com/jogamp/gluegen/jcpp')
-rw-r--r-- | src/main/java/com/jogamp/gluegen/jcpp/BuildMetadata.java | 72 | ||||
-rw-r--r-- | src/main/java/com/jogamp/gluegen/jcpp/Main.java | 195 |
2 files changed, 0 insertions, 267 deletions
diff --git a/src/main/java/com/jogamp/gluegen/jcpp/BuildMetadata.java b/src/main/java/com/jogamp/gluegen/jcpp/BuildMetadata.java deleted file mode 100644 index f22d853..0000000 --- a/src/main/java/com/jogamp/gluegen/jcpp/BuildMetadata.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.jogamp.gluegen.jcpp; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import javax.annotation.Nonnull; - -/** - * Returns information about the build. - * - * @author shevek - */ -public class BuildMetadata { - - public static final String RESOURCE = "/META-INF/jcpp.properties"; - private static BuildMetadata INSTANCE; - - /** @throws RuntimeException if the properties file cannot be found on the classpath. */ - @Nonnull - public static synchronized BuildMetadata getInstance() { - try { - if (INSTANCE == null) - INSTANCE = new BuildMetadata(); - return INSTANCE; - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private final Properties properties = new Properties(); - - private BuildMetadata() throws IOException { - URL url = BuildMetadata.class.getResource(RESOURCE); - InputStream in = url.openStream(); - try { - properties.load(in); - } finally { - in.close(); - } - } - - @Nonnull - public Map<? extends String, ? extends String> asMap() { - Map<String, String> out = new HashMap<String, String>(); - for (Map.Entry<Object, Object> e : properties.entrySet()) - out.put(String.valueOf(e.getKey()), String.valueOf(e.getValue())); - return out; - } - - @Nonnull - public com.github.zafarkhaja.semver.Version getVersion() { - return com.github.zafarkhaja.semver.Version.valueOf(properties.getProperty("Implementation-Version")); - } - - @Nonnull - public Date getBuildDate() throws ParseException { - // Build-Date=2015-01-01_10:09:09 - String text = properties.getProperty("Build-Date"); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); - return format.parse(text); - } - - public String getChangeId() { - return properties.getProperty("Change"); - } -} diff --git a/src/main/java/com/jogamp/gluegen/jcpp/Main.java b/src/main/java/com/jogamp/gluegen/jcpp/Main.java deleted file mode 100644 index 9f06fb0..0000000 --- a/src/main/java/com/jogamp/gluegen/jcpp/Main.java +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Anarres C Preprocessor - * Copyright (c) 2007-2008, Shevek - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -package com.jogamp.gluegen.jcpp; - -import java.io.File; -import java.io.PrintStream; -import java.util.Arrays; -import java.util.EnumSet; -import java.util.List; -import javax.annotation.Nonnull; -import joptsimple.OptionParser; -import joptsimple.OptionSet; -import joptsimple.OptionSpec; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * (Currently a simple test class). - */ -public class Main { - - private static final Logger LOG = LoggerFactory.getLogger(Main.class); - - @Nonnull - private static CharSequence getWarnings() { - StringBuilder buf = new StringBuilder(); - for (Warning w : Warning.values()) { - if (buf.length() > 0) - buf.append(", "); - String name = w.name().toLowerCase(); - buf.append(name.replace('_', '-')); - } - return buf; - } - - public static void main(String[] args) throws Exception { - (new Main()).run(args); - } - - public void run(String[] args) throws Exception { - - OptionParser parser = new OptionParser(); - OptionSpec<?> helpOption = parser.accepts("help", - "Displays command-line help.") - .forHelp(); - OptionSpec<?> versionOption = parser.acceptsAll(Arrays.asList("version"), - "Displays the product version (" + BuildMetadata.getInstance().getVersion() + ") and exits.") - .forHelp(); - - OptionSpec<?> debugOption = parser.acceptsAll(Arrays.asList("debug"), - "Enables debug output."); - - OptionSpec<String> defineOption = parser.acceptsAll(Arrays.asList("define", "D"), - "Defines the given macro.") - .withRequiredArg().ofType(String.class).describedAs("name[=definition]"); - OptionSpec<String> undefineOption = parser.acceptsAll(Arrays.asList("undefine", "U"), - "Undefines the given macro, previously either builtin or defined using -D.") - .withRequiredArg().describedAs("name"); - OptionSpec<File> includeOption = parser.accepts("include", - "Process file as if \"#" + "include \"file\"\" appeared as the first line of the primary source file.") - .withRequiredArg().ofType(File.class).describedAs("file"); - OptionSpec<File> incdirOption = parser.acceptsAll(Arrays.asList("incdir", "I"), - "Adds the directory dir to the list of directories to be searched for header files.") - .withRequiredArg().ofType(File.class).describedAs("dir"); - OptionSpec<File> iquoteOption = parser.acceptsAll(Arrays.asList("iquote"), - "Adds the directory dir to the list of directories to be searched for header files included using \"\".") - .withRequiredArg().ofType(File.class).describedAs("dir"); - OptionSpec<String> warningOption = parser.acceptsAll(Arrays.asList("warning", "W"), - "Enables the named warning class (" + getWarnings() + ").") - .withRequiredArg().ofType(String.class).describedAs("warning"); - OptionSpec<Void> noWarningOption = parser.acceptsAll(Arrays.asList("no-warnings", "w"), - "Disables ALL warnings."); - OptionSpec<File> inputsOption = parser.nonOptions() - .ofType(File.class).describedAs("Files to process."); - - OptionSet options = parser.parse(args); - - if (options.has(helpOption)) { - parser.printHelpOn(System.out); - return; - } - - if (options.has(versionOption)) { - version(System.out); - return; - } - - Preprocessor pp = new Preprocessor(); - pp.addFeature(Feature.DIGRAPHS); - pp.addFeature(Feature.TRIGRAPHS); - pp.addFeature(Feature.LINEMARKERS); - pp.addWarning(Warning.IMPORT); - pp.setListener(new DefaultPreprocessorListener()); - pp.addMacro("__JCPP__"); - pp.getSystemIncludePath().add("/usr/local/include"); - pp.getSystemIncludePath().add("/usr/include"); - pp.getFrameworksPath().add("/System/Library/Frameworks"); - pp.getFrameworksPath().add("/Library/Frameworks"); - pp.getFrameworksPath().add("/Local/Library/Frameworks"); - - if (options.has(debugOption)) - pp.addFeature(Feature.DEBUG); - - if (options.has(noWarningOption)) - pp.getWarnings().clear(); - - for (String warning : options.valuesOf(warningOption)) { - warning = warning.toUpperCase(); - warning = warning.replace('-', '_'); - if (warning.equals("ALL")) - pp.addWarnings(EnumSet.allOf(Warning.class)); - else - pp.addWarning(Enum.valueOf(Warning.class, warning)); - } - - for (String arg : options.valuesOf(defineOption)) { - int idx = arg.indexOf('='); - if (idx == -1) - pp.addMacro(arg); - else - pp.addMacro(arg.substring(0, idx), arg.substring(idx + 1)); - } - for (String arg : options.valuesOf(undefineOption)) { - pp.getMacros().remove(arg); - } - - for (File dir : options.valuesOf(incdirOption)) - pp.getSystemIncludePath().add(dir.getAbsolutePath()); - for (File dir : options.valuesOf(iquoteOption)) - pp.getQuoteIncludePath().add(dir.getAbsolutePath()); - for (File file : options.valuesOf(includeOption)) - // Comply exactly with spec. - pp.addInput(new StringLexerSource("#" + "include \"" + file + "\"\n")); - - List<File> inputs = options.valuesOf(inputsOption); - if (inputs.isEmpty()) { - pp.addInput(new InputLexerSource(System.in)); - } else { - for (File input : inputs) - pp.addInput(new FileLexerSource(input)); - } - - if (pp.getFeature(Feature.DEBUG)) { - LOG.info("#" + "include \"...\" search starts here:"); - for (String dir : pp.getQuoteIncludePath()) - LOG.info(" " + dir); - LOG.info("#" + "include <...> search starts here:"); - for (String dir : pp.getSystemIncludePath()) - LOG.info(" " + dir); - LOG.info("End of search list."); - } - - try { - for (;;) { - Token tok = pp.token(); - if (tok == null) - break; - if (tok.getType() == Token.EOF) - break; - System.out.print(tok.getText()); - } - } catch (Exception e) { - StringBuilder buf = new StringBuilder("Preprocessor failed:\n"); - Source s = pp.getSource(); - while (s != null) { - buf.append(" -> ").append(s).append("\n"); - s = s.getParent(); - } - LOG.error(buf.toString(), e); - } - - } - - private static void version(@Nonnull PrintStream out) { - BuildMetadata metadata = BuildMetadata.getInstance(); - out.println("Anarres Java C Preprocessor version " + metadata.getVersion() + " change-id " + metadata.getChangeId()); - out.println("Copyright (C) 2008-2014 Shevek (http://www.anarres.org/)."); - out.println("This is free software; see the source for copying conditions. There is NO"); - out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); - } -} |