diff options
Diffstat (limited to 'util/glgen/main.cpp')
-rw-r--r-- | util/glgen/main.cpp | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/util/glgen/main.cpp b/util/glgen/main.cpp index 15c311caf3..41d97a6c85 100644 --- a/util/glgen/main.cpp +++ b/util/glgen/main.cpp @@ -40,22 +40,39 @@ ****************************************************************************/ #include "codegenerator.h" -#include "specparser.h" +#include "legacyspecparser.h" +#include "xmlspecparser.h" + +#include <QCommandLineParser> int main(int argc, char *argv[]) { - Q_UNUSED(argc); - Q_UNUSED(argv); + QCoreApplication app(argc, argv); + QCommandLineParser cmdParser; + + // flag whether to use legacy or not + QCommandLineOption legacyOption(QStringList() << "l" << "legacy", "Use legacy parser."); + cmdParser.addOption(legacyOption); + cmdParser.process(app); + + SpecParser *parser; + + if (cmdParser.isSet(legacyOption)) { + parser = new LegacySpecParser(); + parser->setTypeMapFileName(QStringLiteral("gl.tm")); + parser->setSpecFileName(QStringLiteral("gl.spec")); + } else { + parser = new XmlSpecParser(); + parser->setSpecFileName(QStringLiteral("gl.xml")); + } - SpecParser parser; - parser.setTypeMapFileName(QStringLiteral("gl.tm")); - parser.setSpecFileName(QStringLiteral("gl.spec")); - parser.parse(); + parser->parse(); CodeGenerator generator; - generator.setParser(&parser); + generator.setParser(parser); generator.generateCoreClasses(QStringLiteral("qopenglversionfunctions")); generator.generateExtensionClasses(QStringLiteral("qopenglextensions")); + delete parser; return 0; } |