diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2020-03-29 15:31:01 +0200 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2020-03-30 15:23:13 +0000 |
commit | 5d3c76df23a5a9857803217ec4e0407bc8958b75 (patch) | |
tree | 4071c12e5d6450955d2156d8abb8fa554de42069 | |
parent | 4ef8a4630e74df92f0f407a80325b6e2a6e464d5 (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.qbs | 33 |
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) { |