1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
import qbs.TextFile
DynamicLibrary {
type: base.concat("custom")
Depends { name: "cpp" }
files: ["testlib.c"]
Group {
name: "linker scripts"
files: [
"linkerscript1",
"linkerscript2",
]
fileTags: ["linkerscript"]
}
cpp.libraryPaths: [
product.sourceDirectory, // location of linkerscripts that are included
]
Rule {
multiplex: true
outputFileTags: "custom"
prepare: {
var cmd = new JavaScriptCommand();
cmd.silent = true;
cmd.sourceCode = function() {
console.warn("---" + product.cpp.nmPath + "---");
}
return [cmd];
}
}
Rule {
multiplex: true
requiresInputs: false
Artifact {
filePath: product.buildDirectory + "/linkerscript_with_includes"
fileTags: ["linkerscript"]
}
prepare: {
var cmd = new JavaScriptCommand();
cmd.sourcePath = product.sourceDirectory;
cmd.buildPath = product.buildDirectory;
cmd.sourceCode = function() {
var file = new TextFile(buildPath + "/linkerscript_with_includes",
TextFile.WriteOnly);
file.write("SEARCH_DIR(\"" + sourcePath + "/scripts\")\n" +
"INCLUDE linkerscript_to_include\n" +
"INCLUDE linkerscript_in_directory\n");
file.close();
}
cmd.highlight = "codegen";
cmd.description = "generating linkerscript with SEARCH_DIR and INCLUDE";
return [cmd];
}
}
Probe {
id: checker
property bool isGcc: qbs.toolchain.contains("gcc")
property bool isLinux: qbs.targetOS.contains("linux")
configure: { console.info("is Linux gcc: " + (isGcc && isLinux)) }
}
qbs.installPrefix: ""
install: true
installDir: ""
}
|