From 46a6e9e9e8aa904d00956bea29f94b350ffe9faa Mon Sep 17 00:00:00 2001 From: Orgad Shaneh <orgads@gmail.com> Date: Wed, 21 Mar 2012 19:35:34 +0200 Subject: [PATCH] Qbs: Fixes for Windows compilation Change-Id: Ia392b8dc566e1d4ffadd67c09a30ace7f64b9f3f Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> --- src/libs/3rdparty/botan/botan.qbs | 33 ++++++++++++++++++-------- src/libs/symbianutils/symbianutils.qbs | 2 ++ src/libs/utils/utils.qbs | 2 +- src/libs/zeroconf/zeroconf.qbs | 8 ++++++- src/plugins/coreplugin/coreplugin.qbs | 4 ++-- src/plugins/debugger/debugger.qbs | 9 +++++++ 6 files changed, 44 insertions(+), 14 deletions(-) diff --git a/src/libs/3rdparty/botan/botan.qbs b/src/libs/3rdparty/botan/botan.qbs index 33861284997..7fe9388e8c3 100644 --- a/src/libs/3rdparty/botan/botan.qbs +++ b/src/libs/3rdparty/botan/botan.qbs @@ -8,28 +8,33 @@ DynamicLibrary { Depends { name: "qt"; submodules: 'core' } cpp.includePaths: ["build", "src"] - cpp.staticLibraries: { - if (qbs.targetOS == 'windows') { - return [ - "advapi32.lib", - "user32.lib" - ] - } - } cpp.dynamicLibraries: { if (qbs.targetOS == 'linux' || qbs.targetOS == 'freebsd') { return ['rt'] } + else if (qbs.targetOS == 'windows') { + return [ + "advapi32", + "user32" + ] + } } cpp.defines: { var result = [] - if (qbs.toolchain == 'msvc2005' || qbs.toolchain == 'msvc2005' || qbs.toolchain == 'msvc2008' || qbs.toolchain == 'msvc2010') + if (qbs.toolchain == 'msvc2005' || qbs.toolchain == 'msvc2008' || qbs.toolchain == 'msvc2010') result.push('BOTAN_DLL=__declspec(dllexport)') return result } - // TODO: add those flags to mingw's compiler: -fpermissive -finline-functions -Wno-long-long + Properties { + condition: qbs.toolchain === 'mingw' + cpp.cxxFlags: [ + '-fpermissive', + '-finline-functions', + '-Wno-long-long' + ] + } files: [ "src/algo_factory/algo_cache.h", @@ -536,4 +541,12 @@ DynamicLibrary { "src/timer/posix_rt/tm_posix.cpp" ] } + + ProductModule { + cpp.linkerFlags: { + if (qbs.toolchain === 'mingw') { + return ['--enable-auto-import'] + } + } + } } diff --git a/src/libs/symbianutils/symbianutils.qbs b/src/libs/symbianutils/symbianutils.qbs index ad8b0609f1e..7d1b0145913 100644 --- a/src/libs/symbianutils/symbianutils.qbs +++ b/src/libs/symbianutils/symbianutils.qbs @@ -12,6 +12,7 @@ DynamicLibrary { ] cpp.defines: [ "SYMBIANUTILS_BUILD_LIB", + "JSON_BUILD_LIB", "HAS_SERIALPORT" ] cpp.optimization: "fast" @@ -59,6 +60,7 @@ DynamicLibrary { "../../shared/json", "." ] + cpp.defines: "JSON_INCLUDE_PRI" } } diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs index c7fe39e52eb..3f1b28139cc 100644 --- a/src/libs/utils/utils.qbs +++ b/src/libs/utils/utils.qbs @@ -14,7 +14,7 @@ DynamicLibrary { Properties { condition: qbs.targetOS == "windows" - cpp.dynamicLibraries: ["User32.lib"] + cpp.dynamicLibraries: ["user32"] } Depends { name: "cpp" } diff --git a/src/libs/zeroconf/zeroconf.qbs b/src/libs/zeroconf/zeroconf.qbs index f6415d0ee51..8fadbb2672d 100644 --- a/src/libs/zeroconf/zeroconf.qbs +++ b/src/libs/zeroconf/zeroconf.qbs @@ -8,13 +8,19 @@ DynamicLibrary { Depends { name: "Qt.network" } cpp.includePaths: "." + cpp.defines: ["ZEROCONF_LIBRARY"] Properties { condition: qbs.targetOS == "windows" cpp.dynamicLibraries: "ws2_32" } Properties { condition: qbs.targetOS == "linux" - cpp.defines: [ "_GNU_SOURCE HAVE_IPV6", "USES_NETLINK", "HAVE_LINUX", "TARGET_OS_LINUX" ] + cpp.defines: outer.concat([ + "_GNU_SOURCE HAVE_IPV6", + "USES_NETLINK", + "HAVE_LINUX", + "TARGET_OS_LINUX" + ]) } files: [ diff --git a/src/plugins/coreplugin/coreplugin.qbs b/src/plugins/coreplugin/coreplugin.qbs index d0fbcd5c0ca..1b4c9c3edd5 100644 --- a/src/plugins/coreplugin/coreplugin.qbs +++ b/src/plugins/coreplugin/coreplugin.qbs @@ -24,9 +24,9 @@ QtcPlugin { buildDirectory ] - cpp.staticLibraries: { + cpp.dynamicLibraries: { if (qbs.targetOS == 'windows') return [ - "ole32.lib" + "ole32" ] } diff --git a/src/plugins/debugger/debugger.qbs b/src/plugins/debugger/debugger.qbs index 6b388894d79..4cf39f71e46 100644 --- a/src/plugins/debugger/debugger.qbs +++ b/src/plugins/debugger/debugger.qbs @@ -295,6 +295,15 @@ QtcPlugin { ] } + Properties { + condition: qbs.targetOS == "windows" + cpp.dynamicLibraries: [ + "advapi32", + "ole32", + "shell32" + ] + } + ProductModule { cpp.includePaths: ["."] } -- GitLab