aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qbs-resources/imports/QbsApp.qbs3
-rw-r--r--qbs-resources/imports/QbsLibrary.qbs4
-rw-r--r--qbs-resources/imports/QbsProduct.qbs2
-rw-r--r--qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs33
-rw-r--r--src/libexec/qbs_processlauncher/qbs_processlauncher.qbs8
-rw-r--r--src/plugins/qbsplugin.qbs3
6 files changed, 36 insertions, 17 deletions
diff --git a/qbs-resources/imports/QbsApp.qbs b/qbs-resources/imports/QbsApp.qbs
index a81efca6a..8e671764d 100644
--- a/qbs-resources/imports/QbsApp.qbs
+++ b/qbs-resources/imports/QbsApp.qbs
@@ -17,9 +17,10 @@ QbsProduct {
fileTagsFilter: product.type
.concat(qbs.buildVariant === "debug" ? ["debuginfo_app"] : [])
qbs.install: true
- qbs.installDir: qbsbuildconfig.appInstallDir
qbs.installSourceBase: destinationDirectory
+ qbs.installDir: targetInstallDir
}
+ targetInstallDir: qbsbuildconfig.appInstallDir
Group {
name: "logging"
prefix: FileInfo.joinPaths(product.sourceDirectory, "../shared/logging") + '/'
diff --git a/qbs-resources/imports/QbsLibrary.qbs b/qbs-resources/imports/QbsLibrary.qbs
index 8757b790c..a6bc7366d 100644
--- a/qbs-resources/imports/QbsLibrary.qbs
+++ b/qbs-resources/imports/QbsLibrary.qbs
@@ -22,9 +22,10 @@ QbsProduct {
fileTagsFilter: product.type.concat("dynamiclibrary_symlink")
.concat(qbs.buildVariant === "debug" ? ["debuginfo_dll"] : [])
qbs.install: install
- qbs.installDir: qbsbuildconfig.libInstallDir
qbs.installSourceBase: destinationDirectory
+ qbs.installDir: targetInstallDir
}
+ targetInstallDir: qbsbuildconfig.libInstallDir
Group {
fileTagsFilter: ["dynamiclibrary_import"]
qbs.install: install
@@ -42,7 +43,6 @@ QbsProduct {
Depends { name: "Qt"; submodules: ["core"] }
Depends { name: "qbsbuildconfig" }
- cpp.rpaths: qbsbuildconfig.libRPaths
cpp.includePaths: [product.sourceDirectory]
cpp.defines: product.visibilityType === "static" ? ["QBS_STATIC_LIB"] : []
}
diff --git a/qbs-resources/imports/QbsProduct.qbs b/qbs-resources/imports/QbsProduct.qbs
index a90037bc6..ff5915d00 100644
--- a/qbs-resources/imports/QbsProduct.qbs
+++ b/qbs-resources/imports/QbsProduct.qbs
@@ -6,6 +6,7 @@ Product {
Depends { name: "Qt.core"; versionAtLeast: minimumQtVersion }
property string minimumQtVersion: "5.6.0"
property bool install: true
+ property string targetInstallDir
cpp.defines: {
var res = ["QT_NO_CAST_FROM_ASCII", "QT_NO_PROCESS_COMBINED_ARGUMENT_START"];
if (qbs.toolchain.contains("msvc"))
@@ -15,4 +16,5 @@ Product {
return res;
}
cpp.enableExceptions: true
+ cpp.rpaths: qbsbuildconfig.libRPaths
}
diff --git a/qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs b/qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs
index ee28da55a..accc5c4b0 100644
--- a/qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs
+++ b/qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs
@@ -19,16 +19,35 @@ Module {
property string relativeLibexecPath: "../" + libexecInstallDir
property string relativePluginsPath: "../" + libDirName
property string relativeSearchPath: ".."
+ property string rpathOrigin: {
+ // qbs < 1.11 compatibility for cpp.rpathOrigin
+ if (qbs.targetOS.contains("darwin"))
+ return "@loader_path";
+ if (qbs.targetOS.contains("unix"))
+ return "$ORIGIN";
+ }
property stringList libRPaths: {
- if (!enableRPath)
- return undefined;
- if (qbs.targetOS.contains("linux"))
- return ["$ORIGIN/../" + libDirName];
- if (qbs.targetOS.contains("macos"))
- return ["@loader_path/../" + libDirName]
+ if (enableRPath && rpathOrigin && product.targetInstallDir) {
+ if (!FileInfo.cleanPath) {
+ // qbs < 1.10 compatibility
+ FileInfo.cleanPath = function (a) {
+ if (a.endsWith("/."))
+ return a.slice(0, -2);
+ if (a.endsWith("/"))
+ return a.slice(0, -1);
+ return a;
+ }
+ }
+ return [FileInfo.cleanPath(FileInfo.joinPaths(rpathOrigin, FileInfo.relativePath(
+ FileInfo.resolvePath(qbs.installRoot,
+ product.targetInstallDir),
+ FileInfo.resolvePath(qbs.installRoot,
+ libDirName))))];
+ }
+ return [];
}
property string resourcesInstallDir: ""
- property string pluginsInstallDir: libDirName
+ property string pluginsInstallDir: libDirName + "/qbs/plugins"
property string qmlTypeDescriptionsInstallDir: FileInfo.joinPaths(resourcesInstallDir,
"share/qbs/qml-type-descriptions")
}
diff --git a/src/libexec/qbs_processlauncher/qbs_processlauncher.qbs b/src/libexec/qbs_processlauncher/qbs_processlauncher.qbs
index 0ed25dca9..b1d74d2ec 100644
--- a/src/libexec/qbs_processlauncher/qbs_processlauncher.qbs
+++ b/src/libexec/qbs_processlauncher/qbs_processlauncher.qbs
@@ -10,11 +10,6 @@ QbsProduct {
Depends { name: "Qt.network" }
- Properties {
- condition: qbs.targetOS.contains("macos") && qbsbuildconfig.enableRPath
- cpp.rpaths: ["@loader_path/../../" + qbsbuildconfig.libDirName]
- }
-
cpp.cxxLanguageVersion: "c++11"
cpp.includePaths: base.concat(pathToProtocolSources)
@@ -40,7 +35,8 @@ QbsProduct {
fileTagsFilter: product.type
.concat(qbs.buildVariant === "debug" ? ["debuginfo_app"] : [])
qbs.install: true
- qbs.installDir: qbsbuildconfig.libexecInstallDir
qbs.installSourceBase: destinationDirectory
+ qbs.installDir: targetInstallDir
}
+ targetInstallDir: qbsbuildconfig.libexecInstallDir
}
diff --git a/src/plugins/qbsplugin.qbs b/src/plugins/qbsplugin.qbs
index dc1d4d612..a2b4fe8a5 100644
--- a/src/plugins/qbsplugin.qbs
+++ b/src/plugins/qbsplugin.qbs
@@ -25,9 +25,10 @@ QbsProduct {
.concat(qbs.buildVariant === "debug"
? [isForDarwin ? "debuginfo_loadablemodule" : "debuginfo_dll"] : [])
qbs.install: true
- qbs.installDir: qbsbuildconfig.pluginsInstallDir + "/qbs/plugins"
qbs.installSourceBase: destinationDirectory
+ qbs.installDir: targetInstallDir
}
+ targetInstallDir: qbsbuildconfig.pluginsInstallDir
Properties {
condition: isForDarwin
bundle.isBundle: false