Strip custom prefix from interface name
Interface names for some protocols might not start with wl_ or qt_, with this change users can specify a prefix of their liking. Change-Id: I70d40985165c49114b525bdec2a872aa5b0dad6d Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
This commit is contained in:
parent
70c578cb5e
commit
a0bc006361
@ -313,8 +313,10 @@ void printEnums(const QList<WaylandEnum> &enums)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray stripInterfaceName(const QByteArray &name)
|
QByteArray stripInterfaceName(const QByteArray &name, const QByteArray &prefix)
|
||||||
{
|
{
|
||||||
|
if (!prefix.isEmpty() && name.startsWith(prefix))
|
||||||
|
return name.mid(prefix.size());
|
||||||
if (name.startsWith("qt_") || name.startsWith("wl_"))
|
if (name.startsWith("qt_") || name.startsWith("wl_"))
|
||||||
return name.mid(3);
|
return name.mid(3);
|
||||||
|
|
||||||
@ -327,7 +329,7 @@ bool ignoreInterface(const QByteArray &name)
|
|||||||
|| (isServerSide() && name == "wl_registry");
|
|| (isServerSide() && name == "wl_registry");
|
||||||
}
|
}
|
||||||
|
|
||||||
void process(QXmlStreamReader &xml, const QByteArray &headerPath)
|
void process(QXmlStreamReader &xml, const QByteArray &headerPath, const QByteArray &prefix)
|
||||||
{
|
{
|
||||||
if (!xml.readNextStartElement())
|
if (!xml.readNextStartElement())
|
||||||
return;
|
return;
|
||||||
@ -409,7 +411,7 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath)
|
|||||||
|
|
||||||
const char *interfaceName = interface.name.constData();
|
const char *interfaceName = interface.name.constData();
|
||||||
|
|
||||||
QByteArray stripped = stripInterfaceName(interface.name);
|
QByteArray stripped = stripInterfaceName(interface.name, prefix);
|
||||||
const char *interfaceNameStripped = stripped.constData();
|
const char *interfaceNameStripped = stripped.constData();
|
||||||
|
|
||||||
printf(" class %s %s\n {\n", serverExport.constData(), interfaceName);
|
printf(" class %s %s\n {\n", serverExport.constData(), interfaceName);
|
||||||
@ -546,7 +548,7 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath)
|
|||||||
|
|
||||||
const char *interfaceName = interface.name.constData();
|
const char *interfaceName = interface.name.constData();
|
||||||
|
|
||||||
QByteArray stripped = stripInterfaceName(interface.name);
|
QByteArray stripped = stripInterfaceName(interface.name, prefix);
|
||||||
const char *interfaceNameStripped = stripped.constData();
|
const char *interfaceNameStripped = stripped.constData();
|
||||||
|
|
||||||
printf(" %s::%s(struct ::wl_client *client, int id)\n", interfaceName, interfaceName);
|
printf(" %s::%s(struct ::wl_client *client, int id)\n", interfaceName, interfaceName);
|
||||||
@ -815,7 +817,7 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath)
|
|||||||
|
|
||||||
const char *interfaceName = interface.name.constData();
|
const char *interfaceName = interface.name.constData();
|
||||||
|
|
||||||
QByteArray stripped = stripInterfaceName(interface.name);
|
QByteArray stripped = stripInterfaceName(interface.name, prefix);
|
||||||
const char *interfaceNameStripped = stripped.constData();
|
const char *interfaceNameStripped = stripped.constData();
|
||||||
|
|
||||||
printf(" class %s %s\n {\n", clientExport.constData(), interfaceName);
|
printf(" class %s %s\n {\n", clientExport.constData(), interfaceName);
|
||||||
@ -901,7 +903,7 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath)
|
|||||||
|
|
||||||
const char *interfaceName = interface.name.constData();
|
const char *interfaceName = interface.name.constData();
|
||||||
|
|
||||||
QByteArray stripped = stripInterfaceName(interface.name);
|
QByteArray stripped = stripInterfaceName(interface.name, prefix);
|
||||||
const char *interfaceNameStripped = stripped.constData();
|
const char *interfaceNameStripped = stripped.constData();
|
||||||
|
|
||||||
bool hasEvents = !interface.events.isEmpty();
|
bool hasEvents = !interface.events.isEmpty();
|
||||||
@ -1065,15 +1067,18 @@ void process(QXmlStreamReader &xml, const QByteArray &headerPath)
|
|||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
if (argc <= 2 || !parseOption(argv[1], &option)) {
|
if (argc <= 2 || !parseOption(argv[1], &option)) {
|
||||||
fprintf(stderr, "Usage: %s [client-header|server-header|client-code|server-code] specfile [header-path]\n", argv[0]);
|
fprintf(stderr, "Usage: %s [client-header|server-header|client-code|server-code] specfile [header-path] [prefix]\n", argv[0]);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
QCoreApplication app(argc, argv);
|
QCoreApplication app(argc, argv);
|
||||||
|
|
||||||
QByteArray headerPath;
|
QByteArray headerPath;
|
||||||
if (argc == 4)
|
if (argc >= 4)
|
||||||
headerPath = QByteArray(argv[3]);
|
headerPath = QByteArray(argv[3]);
|
||||||
|
QByteArray prefix;
|
||||||
|
if (argc == 5)
|
||||||
|
prefix = QByteArray(argv[4]);
|
||||||
QFile file(argv[2]);
|
QFile file(argv[2]);
|
||||||
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
fprintf(stderr, "Unable to open file %s\n", argv[2]);
|
fprintf(stderr, "Unable to open file %s\n", argv[2]);
|
||||||
@ -1081,7 +1086,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QXmlStreamReader xml(&file);
|
QXmlStreamReader xml(&file);
|
||||||
process(xml, headerPath);
|
process(xml, headerPath, prefix);
|
||||||
|
|
||||||
if (xml.hasError()) {
|
if (xml.hasError()) {
|
||||||
fprintf(stderr, "XML error: %s\nLine %lld, column %lld\n", xml.errorString().toLocal8Bit().constData(), xml.lineNumber(), xml.columnNumber());
|
fprintf(stderr, "XML error: %s\nLine %lld, column %lld\n", xml.errorString().toLocal8Bit().constData(), xml.lineNumber(), xml.columnNumber());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user