aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/codegen/codegen.qbp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/codegen/codegen.qbp')
-rw-r--r--tests/manual/codegen/codegen.qbp42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/manual/codegen/codegen.qbp b/tests/manual/codegen/codegen.qbp
new file mode 100644
index 000000000..e1f7be3d4
--- /dev/null
+++ b/tests/manual/codegen/codegen.qbp
@@ -0,0 +1,42 @@
+import qbs.base 1.0
+import qbs.fileinfo 1.0 as FileInfo
+
+Project {
+ property string name: 'codegen'
+
+ Product {
+ type: 'application'
+ name: project.name
+ Group {
+ files: 'foo.txt'
+ fileTags: ['text']
+ }
+ Depends { name: 'cpp' }
+ }
+
+ Rule {
+ inputs: ['text']
+ Artifact {
+ fileTags: ['cpp']
+ fileName: input.baseName + '.cpp'
+ }
+ prepare: {
+ var code = 'int main(int, char **) { return 0; }'
+ var args = ['echo ' + code + '>' + output.fileName]
+ var cmd
+ if (product.modules.qbs.targetOS == 'windows') {
+ cmd = new Command('c:/Windows/System32/cmd.exe', ['/C'].concat(args));
+ } else {
+ args[0] = args[0].replace(/\(/g, '\\(')
+ args[0] = args[0].replace(/\)/g, '\\)')
+ args[0] = args[0].replace(/;/g, '\\;')
+ cmd = new Command('/bin/sh', ['-c'].concat(args))
+ }
+ cmd.description = 'generate\t' + FileInfo.fileName(output.fileName);
+ cmd.highlight = 'codegen';
+ return cmd;
+ }
+ }
+
+}
+