Advertisement
Korsar13

qbs proj

Dec 17th, 2021
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import qbs.TextFile
  2.  
  3. Project {
  4.     Product {
  5.         name: "gen1"
  6.         type: ["cpp","cpp-gen"]
  7.         Depends { name: "cpp" }
  8.         Rule {
  9.             multiplex: true
  10.             Artifact {
  11.                 fileTags: ["cpp","cpp-gen"]
  12.                 filePath: "gen1.cpp"
  13.             }
  14.             prepare: {
  15.                 //Dbg.xlog(arguments,"arguments",1);
  16.                 var cmd = new JavaScriptCommand();
  17.                 cmd.dst = output.filePath;
  18.                 cmd.txt = "#include <iostream>\n struct Gen1 { Gen1() { std::cout << \"Gen1 ctor\" << std::endl; } } gen1;\n";
  19.                 cmd.description = 'generate ' + cmd.dst
  20.                 cmd.sourceCode = function(){
  21.                     var file = new TextFile( dst, TextFile.WriteOnly );
  22.                     file.write( txt );
  23.                     file.close();
  24.                 };
  25.                 return [cmd];
  26.             }
  27.         }
  28.         Export {
  29.             Group {
  30.                 fileTagsFilter: ["cpp-gen","cpp"]
  31.                 //filesAreTargets: true;
  32.             }
  33.         }
  34.     }
  35.    
  36.     CppApplication {
  37.         name: "a"
  38.         consoleApplication: true
  39.         Depends { name: "gen1" }
  40.        
  41.         Rule {
  42.             multiplex: true
  43.             Artifact {
  44.                 fileTags: ["cpp"]
  45.                 filePath: "a.cpp"
  46.             }
  47.             prepare: {
  48.                 var cmd = new JavaScriptCommand();
  49.                 cmd.dst = output.filePath;
  50.                 cmd.txt = "#include <iostream>\n int main() { std::cout << \"main() called\" << std::endl; }\n";
  51.                 cmd.description = 'generate ' + cmd.dst
  52.                 cmd.sourceCode = function(){
  53.                     var file = new TextFile( dst, TextFile.WriteOnly );
  54.                     file.write( txt );
  55.                     file.close();
  56.                 };
  57.                 return [cmd];
  58.             }
  59.         }
  60.     }
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement