8int main(
int argc,
char **argv) {
9 QCoreApplication application(argc, argv);
10 QCoreApplication::setApplicationName(
11 QStringLiteral(
"create_acmxvk_source_manifest"));
12 QCoreApplication::setApplicationVersion(QStringLiteral(
"1.0"));
14 QCommandLineParser parser;
15 parser.setApplicationDescription(
16 QStringLiteral(
"Create an ACMXVK source library.json from Vulkan GLSL "
17 "fragment and compute sources."));
18 parser.addHelpOption();
19 parser.addVersionOption();
20 const QCommandLineOption rootOption(
21 QStringList{QStringLiteral(
"r"), QStringLiteral(
"root")},
22 QStringLiteral(
"Shader source directory to scan recursively."),
23 QStringLiteral(
"directory"));
24 const QCommandLineOption outputOption(
25 QStringList{QStringLiteral(
"o"), QStringLiteral(
"output")},
26 QStringLiteral(
"Manifest path (defaults to ROOT/library.json)."),
27 QStringLiteral(
"file"));
28 parser.addOption(rootOption);
29 parser.addOption(outputOption);
30 parser.process(application);
32 if (!parser.isSet(rootOption))
38 parser.value(rootOption), parser.value(outputOption), result, error)) {
39 QTextStream(stderr) <<
"Error: " << error <<
'\n';
bool create_acmxvk_source_manifest(const QString &rootDirectory, const QString &outputPath, AcmxvkSourceManifestResult &result, QString &error)
Scan an ACMXVK source tree and atomically generate its library.json.