diff options
author | David Morgan <david.morgan@kdab.com> | 2014-07-02 17:43:16 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2014-08-29 12:41:21 +0200 |
commit | d444bbf110e83c72d0657203896ad3c8a4cb5107 (patch) | |
tree | ac9e57627a3d19cfb0902115386110e1cbc0fef2 /util/glgen/main.cpp | |
parent | 036cc9cb047c4ceffb545c8cbeedb315691fc6ce (diff) |
glgen: Added support for parsing the new xml spec.
The .spec file is no longer updated thus support for gl 4.4 is impossible without an update to parse the new xml spec. The legacy parser can be used with the -l (--legacy) switch.
Task-number: QTBUG-33671
Task-number: QTBUG-40090
Change-Id: I83d9380842a16e925f6c07331ee35fe035f6baa9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
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; } |