summaryrefslogtreecommitdiff
path: root/share/qbs/modules/cpp/GenericGCC.qbs
diff options
context:
space:
mode:
Diffstat (limited to 'share/qbs/modules/cpp/GenericGCC.qbs')
-rw-r--r--share/qbs/modules/cpp/GenericGCC.qbs16
1 files changed, 6 insertions, 10 deletions
diff --git a/share/qbs/modules/cpp/GenericGCC.qbs b/share/qbs/modules/cpp/GenericGCC.qbs
index 95105ef0b..d07c6e69d 100644
--- a/share/qbs/modules/cpp/GenericGCC.qbs
+++ b/share/qbs/modules/cpp/GenericGCC.qbs
@@ -32,11 +32,9 @@ CppModule {
compilerPath: toolchainPathPrefix + compilerName
property path archiverPath: { return toolchainPathPrefix + archiverName }
- property bool createSymlinks: true
-
readonly property bool shouldCreateSymlinks: {
return createSymlinks && product.version &&
- !type.contains("frameworkbundle") && qbs.targetOS.contains("unix");
+ !product.type.contains("frameworkbundle") && qbs.targetOS.contains("unix");
}
readonly property string internalVersion: {
@@ -71,9 +69,9 @@ CppModule {
var result = []
for (var i in inputs.dynamiclibrary) {
var lib = inputs.dynamiclibrary[i]
- result.push(lib.fileName)
var impliedLibs = ModUtils.moduleProperties(lib, 'transitiveSOs')
- result = result.concat(impliedLibs)
+ var libsToAdd = impliedLibs.concat([lib.fileName]);
+ result = ModUtils.uniqueConcat(result, libsToAdd);
}
return result
}
@@ -81,21 +79,18 @@ CppModule {
// libfoo
Artifact {
- condition: product.shouldCreateSymlinks
fileName: product.destinationDirectory + "/" + PathTools.dynamicLibraryFileName(undefined, 0)
fileTags: ["dynamiclibrary_symlink"]
}
// libfoo.1
Artifact {
- condition: product.shouldCreateSymlinks
fileName: product.destinationDirectory + "/" + PathTools.dynamicLibraryFileName(undefined, 1)
fileTags: ["dynamiclibrary_symlink"]
}
// libfoo.1.0
Artifact {
- condition: product.shouldCreateSymlinks
fileName: product.destinationDirectory + "/" + PathTools.dynamicLibraryFileName(undefined, 2)
fileTags: ["dynamiclibrary_symlink"]
}
@@ -256,8 +251,9 @@ CppModule {
if (product.moduleProperty("qbs", "targetOS").contains('linux')) {
var transitiveSOs = ModUtils.modulePropertiesFromArtifacts(product, inputs.dynamiclibrary, 'cpp', 'transitiveSOs')
- for (i in transitiveSOs) {
- args.push("-Wl,-rpath-link=" + FileInfo.path(transitiveSOs[i]))
+ var uniqueSOs = ModUtils.uniqueConcat([], transitiveSOs)
+ for (i in uniqueSOs) {
+ args.push("-Wl,-rpath-link=" + FileInfo.path(uniqueSOs[i]))
}
}