diff options
Diffstat (limited to 'share/qbs/modules/cpp/GenericGCC.qbs')
| -rw-r--r-- | share/qbs/modules/cpp/GenericGCC.qbs | 16 |
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])) } } |
