summaryrefslogtreecommitdiffstats
path: root/util/glgen/main.cpp
diff options
context:
space:
mode:
authorDavid Morgan <david.morgan@kdab.com>2014-07-02 17:43:16 +0100
committerSean Harmer <sean.harmer@kdab.com>2014-08-29 12:41:21 +0200
commitd444bbf110e83c72d0657203896ad3c8a4cb5107 (patch)
treeac9e57627a3d19cfb0902115386110e1cbc0fef2 /util/glgen/main.cpp
parent036cc9cb047c4ceffb545c8cbeedb315691fc6ce (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.cpp33
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;
}