diff options
author | Tobias Markmann <tm@ayena.de> | 2016-10-10 17:42:09 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2016-10-11 14:17:31 (GMT) |
commit | fc9df1253fa6d3a8f86c06d9e9a0d531ba0f5b13 (patch) | |
tree | 8187b58f63aad6621addfd12d4fd77a860dedc68 /Swift | |
parent | 72343b4eb5b322e3d52e0db95f35423a3b7d6540 (diff) | |
download | swift-fc9df1253fa6d3a8f86c06d9e9a0d531ba0f5b13.zip swift-fc9df1253fa6d3a8f86c06d9e9a0d531ba0f5b13.tar.bz2 |
Fix building Swift on 32-bit Linux distributions
Some distributions ship Qt configured so it requires your
application to be build with the -fPIC flag. This adds a
SCons check for this so the flag is automatically added if
required.
Test-Information:
Successfully build Swift and ran unit tests on Ubuntu 16.04
(32 bit and 64 bit) and Debian 8.6 (32 bit and 64 bit).
Change-Id: I8016bcb43fa36a3becf946ec179d74cdceb1d147
Diffstat (limited to 'Swift')
-rw-r--r-- | Swift/QtUI/SConscript | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript index 1ecdf4e..c8313c2 100644 --- a/Swift/QtUI/SConscript +++ b/Swift/QtUI/SConscript @@ -47,60 +47,68 @@ if myenv.get("HAVE_SNARL", False) : myenv.UseFlags(myenv["SNARL_FLAGS"]) myenv.Append(CPPDEFINES = ["HAVE_SNARL"]) if myenv.get("HAVE_HUNSPELL", True): myenv.Append(CPPDEFINES = ["HAVE_HUNSPELL"]) myenv.UseFlags(myenv["HUNSPELL_FLAGS"]) if env["PLATFORM"] == "win32" : myenv.Append(LIBS = ["cryptui"]) myenv.UseFlags(myenv["PLATFORM_FLAGS"]) myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"]) myenv.Tool("nsis", toolpath = ["#/BuildTools/SCons/Tools"]) myenv.Tool("wix", toolpath = ["#/BuildTools/SCons/Tools"]) myenv.Tool("textfile", toolpath = ["#/BuildTools/SCons/Tools"]) qt4modules = ['QtCore', 'QtWebKit', 'QtGui'] if myenv["qt5"] : qt_version = '5' qt4modules += ['QtWidgets', 'QtWebKitWidgets', 'QtMultimedia'] if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" : qt4modules += ['QtX11Extras'] else : qt_version = '4' if env["PLATFORM"] == "posix" : qt4modules += ["QtDBus"] if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" : qt4modules += ["QtNetwork"] myenv.EnableQt4Modules(qt4modules, debug = False, version = qt_version) myenv.Append(CPPPATH = ["."]) +# Qt requires applications to be build with the -fPIC flag on some 32-bit Linux distributions. +if env["PLATFORM"] == "posix" : + testEnv = myenv.Clone() + conf = Configure(testEnv) + if conf.CheckDeclaration("QT_REDUCE_RELOCATIONS", "#include <QtCore/qconfig.h>") and conf.CheckDeclaration("__i386__"): + myenv.AppendUnique(CXXFLAGS = "-fPIC") + testEnv = conf.Finish() + if env["PLATFORM"] == "win32" : #myenv.Append(LINKFLAGS = ["/SUBSYSTEM:CONSOLE"]) myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"]) myenv.Append(LIBS = "qtmain") if myenv.get("HAVE_SCHANNEL", 0) : myenv.Append(LIBS = "Cryptui") myenv.Append(CPPDEFINES = "HAVE_SCHANNEL") if env["debug"] and not env["optimize"]: myenv.Append(LINKFLAGS = ["/NODEFAULTLIB:msvcrt"]) myenv.WriteVal("DefaultTheme.qrc", myenv.Value(generateDefaultTheme(myenv.Dir("#/Swift/resources/themes/Default")))) sources = [ "main.cpp", "QtAboutWidget.cpp", "QtSpellCheckerWindow.cpp", "QtAvatarWidget.cpp", "QtUIFactory.cpp", "QtChatWindowFactory.cpp", "QtClickableLabel.cpp", "QtLoginWindow.cpp", "QtMainWindow.cpp", "QtProfileWindow.cpp", "QtBlockListEditorWindow.cpp", "QtNameWidget.cpp", "QtSettingsProvider.cpp", "QtStatusWidget.cpp", "QtScaledAvatarCache.cpp", "QtSwift.cpp", "QtURIHandler.cpp", |