forked from qt-creator/qt-creator
Change-Id: Ia3e4df528d391580064efbeeab75016335a4299d Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
100 lines
3.5 KiB
QML
100 lines
3.5 KiB
QML
import qbs.base 1.0
|
|
import qbs.fileinfo 1.0 as FileInfo
|
|
|
|
Module {
|
|
Depends { id: qtcore; name: "Qt.core" }
|
|
|
|
additionalProductFileTags: qtcore.versionMajor < 5 ? ["pluginSpec"] : ["pluginJSON"]
|
|
property int ide_version_major: project.ide_version_major
|
|
property int ide_version_minor: project.ide_version_minor
|
|
property int ide_version_release: project.ide_version_release
|
|
property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' + ide_version_release
|
|
property string destdir: product.destination
|
|
|
|
property var pluginspecreplacements: product.pluginspecreplacements
|
|
|
|
|
|
FileTagger {
|
|
pattern: "*.in"
|
|
fileTags: ["pluginSpecIn"]
|
|
}
|
|
|
|
Rule {
|
|
inputs: ["pluginSpecIn"]
|
|
|
|
Artifact {
|
|
fileTags: ["pluginSpec"]
|
|
fileName: {
|
|
var destdir = input.modules.pluginspec.destdir;
|
|
if (!destdir.match(/\/$/))
|
|
destdir += "/";
|
|
return destdir + input.fileName.replace(/\.[^\.]*$/,'');
|
|
}
|
|
}
|
|
|
|
prepare: {
|
|
var cmd = new JavaScriptCommand();
|
|
cmd.description = "prepare " + FileInfo.fileName(output.fileName);
|
|
cmd.highlight = "codegen";
|
|
cmd.qtcreator_version = product.module.qtcreator_version;
|
|
cmd.ide_version_major = product.module.ide_version_major;
|
|
cmd.ide_version_minor = product.module.ide_version_minor;
|
|
cmd.ide_version_release = product.module.ide_version_release;
|
|
|
|
cmd.pluginspecreplacements = product.module.pluginspecreplacements;
|
|
|
|
cmd.sourceCode = function() {
|
|
var i;
|
|
var vars = pluginspecreplacements || {};
|
|
var inf = new TextFile(input.fileName);
|
|
var all = inf.readAll();
|
|
// replace quoted quotes
|
|
all = all.replace(/\\\"/g, '"');
|
|
// replace config vars
|
|
vars['QTCREATOR_VERSION'] = qtcreator_version;
|
|
vars['IDE_VERSION_MAJOR'] = ide_version_major;
|
|
vars['IDE_VERSION_MINOR'] = ide_version_minor;
|
|
vars['IDE_VERSION_RELEASE'] = ide_version_release;
|
|
for (i in vars) {
|
|
all = all.replace(new RegExp('\\\$\\\$' + i.toUpperCase() + '(?!\w)', 'g'), vars[i]);
|
|
}
|
|
var file = new TextFile(output.fileName, TextFile.WriteOnly);
|
|
file.truncate();
|
|
file.write(all);
|
|
file.close();
|
|
}
|
|
return cmd;
|
|
}
|
|
}
|
|
|
|
Rule {
|
|
inputs: ["pluginSpec"]
|
|
|
|
Artifact {
|
|
fileTags: ["pluginJSON"]
|
|
fileName: {
|
|
var destdir = FileInfo.joinPaths(product.modules["qt/core"].generatedFilesDir,
|
|
input.fileName);
|
|
return destdir.replace(/\.[^\.]*$/, '.json');
|
|
}
|
|
}
|
|
|
|
prepare: {
|
|
var xslFile = project.path + "/src/pluginjsonmetadata.xsl";
|
|
var xmlPatternsPath = product.modules["qt/core"].binPath + "/xmlpatterns";
|
|
var args = [
|
|
"-no-format",
|
|
"-output",
|
|
output.fileName,
|
|
xslFile,
|
|
input.fileName
|
|
];
|
|
var cmd = new Command(xmlPatternsPath, args);
|
|
cmd.description = "generating " + FileInfo.fileName(output.fileName);
|
|
cmd.highlight = "codegen";
|
|
return cmd;
|
|
}
|
|
}
|
|
}
|
|
|