aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2020-03-29 15:31:01 +0200
committerIvan Komissarov <ABBAPOH@gmail.com>2020-03-30 15:23:13 +0000
commit5d3c76df23a5a9857803217ec4e0407bc8958b75 (patch)
tree4071c12e5d6450955d2156d8abb8fa554de42069
parent4ef8a4630e74df92f0f407a80325b6e2a6e464d5 (diff)
LibraryProbe: extend search paths
This allows to search for libraries in Linux-specific directories such as /usr/lib/x86_64-linux-gnu on Debian. This also enables auto-testing protobufcpp module in Travis for Linux Change-Id: Ib8628bbbb25846d1338676619ffc8b3f15cf67b1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--share/qbs/imports/qbs/Probes/LibraryProbe.qbs33
1 files changed, 29 insertions, 4 deletions
diff --git a/share/qbs/imports/qbs/Probes/LibraryProbe.qbs b/share/qbs/imports/qbs/Probes/LibraryProbe.qbs
index 26787d1b4..dfa9890a9 100644
--- a/share/qbs/imports/qbs/Probes/LibraryProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/LibraryProbe.qbs
@@ -29,6 +29,7 @@
****************************************************************************/
PathProbe {
+ property string endianness
nameSuffixes: {
if (qbs.targetOS.contains("windows"))
return [".lib"];
@@ -36,10 +37,34 @@ PathProbe {
return [".dylib", ".a"];
return [".so", ".a"];
}
- platformSearchPaths: qbs.targetOS.contains("unix") ? [
- "/usr/lib",
- "/usr/local/lib",
- ] : []
+ platformSearchPaths: {
+ var result = [];
+ if (qbs.targetOS.contains("unix")) {
+ if (qbs.targetOS.contains("linux") && qbs.architecture) {
+ if (qbs.architecture === "armv7")
+ result = ["/usr/lib/arm-linux-gnueabihf"]
+ else if (qbs.architecture === "arm64")
+ result = ["/usr/lib/aarch64-linux-gnu"]
+ else if (qbs.architecture === "mips" && endianness === "big")
+ result = ["/usr/lib/mips-linux-gnu"]
+ else if (qbs.architecture === "mips" && endianness === "little")
+ result = ["/usr/lib/mipsel-linux-gnu"]
+ else if (qbs.architecture === "mips64")
+ result = ["/usr/lib/mips64el-linux-gnuabi64"]
+ else if (qbs.architecture === "ppc")
+ result = ["/usr/lib/powerpc-linux-gnu"]
+ else if (qbs.architecture === "ppc64")
+ result = ["/usr/lib/powerpc64le-linux-gnu"]
+ else if (qbs.architecture === "x86_64")
+ result = ["/usr/lib64", "/usr/lib/x86_64-linux-gnu"]
+ else if (qbs.architecture === "x86")
+ result = ["/usr/lib32", "/usr/lib/i386-linux-gnu"]
+ }
+ result = result.concat(["/usr/lib", "/usr/local/lib"]);
+ }
+
+ return result;
+ }
nameFilter: {
if (qbs.targetOS.contains("unix")) {
return function(name) {