summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-10-26Add Ubuntu support to InstallSwiftDependencies.sh scriptTobias Markmann
Test-Information: Tested script on Ubuntu 15.04. Change-Id: I7fdf700a3cc943c1cb517b6d33a91548c682cb0d
2015-10-16Do not require complete Qt installation when building SwiftenTobias Markmann
Previously, if a base installation of Qt was available but not all Qt modules required by Swift are available Scons would fail configuration. If a basic Qt installation is available SCons will try to configure Swift even if you only want to build Swiften. This commit changes the hard failure in Swift configuration to a warning. This allows only Swiften to be build. In addition, the warning now lists the Qt packages required by Swift. Test-Information: Tested on Arch Linux. Change-Id: I220ea61a7e4af849912e1fb1ae66cbecf5136d29
2015-09-24Always include Qt5 audio plugins for Windows packagesTobias Markmann
At some point during the Qt5 timeline they moved platform dependent audio playback code into a plugin. This fix will ensure that audio plugins are always shipped with out packages. Test-Information: Tested playing sound works on Windows 7 and Windows 8. Change-Id: I8976f1c1fb85d5efaadec5db26adec907a0a9f7b
2015-09-18Add support for Arch distributions in InstallSwiftDependencies.shTobias Markmann
Test-Information: Tested on an updated Arch Linux. Change-Id: I12bc9ebea6363a48025b5ab856b62e6bd2232a59
2015-09-18Add script for installing 3rdParty dependencies on UNIX/LinuxTobias Markmann
This script detects the system type and distribution and installs dependencies to build Swift with Qt5. Currently, it only supports Debian, but will be extended to more systems in future. Test-Information: Tested on Debian 8. Change-Id: I56f8fe5738f057cff519755fe2f823eac721d318
2015-09-02Restrict pre-commit copyright check to added filesTobias Markmann
Previously the pre-commit would require a correct copyright header on all files, including modified files that only have a couple lines changed. Now, a correct copyright file header is only required on new files added to the repository. Test-Information: Changed git author information to a new user and tried committing a changed file, and afterwards a new file. Only the commit of a new file failed due to missing copyright header. It was accepted after setting BSD header. Change-Id: I8e1324846fd904a72728e7c01da4c98f49a77282
2015-08-11Add 'check_headers' flag to scons for missing include detectionTobias Markmann
Running './scons check_headers=1 will compile each header file as an object file. Test-Information: Tested on OS X 10.9.5 and Elementary OS 0.2. Change-Id: Ia429ccc6dc0a5bd76c08a2c2e91bf192c6ad2901
2015-07-24Add missing includes for dependencies in public header filesTobias Markmann
Added Swiften/Base/Concat.h to the exception list for <algorithm> include, as Concat.h uses std::copy, defined in <algorithm>. Added Swiften/FileTransfer/S5BTransportSession.h to the exception list for <boost/bind.hpp> include, as S5BTransportSession.h declares a template class using boost::bind. Test-Information: Tested that each of Swiften's public header files compiles on its own. Change-Id: Iac794b6e0f5959cd8261888a67761813b710fe85
2015-07-07Use environment variables for addresses used in NetworkTestTobias Markmann
Introducing SWIFT_NETWORK_TEST_IPV4 and SWIFT_NETWORK_TEST_IPV6 for the host addresses used in BoostConnectionTest.cpp. Passing these variables and ASAN/LSAN_OPTIONS for memory leak detection when calling the test from SCons. Test-Information: Tested on Elementary OS with correct available hosts and unavailable hosts. In both cases the behavior is the same as before. Change-Id: I24128c766642c5a2ee273f7c11624525ae33e270
2015-07-07Fix './scons --help' if no Qt installation can be foundTobias Markmann
Test-Information: Tested on Elementary OS 0.2. Change-Id: Ieae4fc2a2c6fdfaaac9895153b09c9504ef71495
2015-06-29Add WindowsServicePrincipalName classMili Verma
Test-information: Tested on Windows using WIP GSSAPI code. Unit tests pass. Change-Id: If872863d6a8b5a164f8ebec4f88e9939b4e73c62
2015-06-25Fix qt4.py tool for ArchTobias Markmann
The tool had syntax errors (missing subprocess. in front of PIPE) and SCons errors (missing conf.Finish() calls). Test-Information: Tested on Arch Linux 1.4. Change-Id: Ibab23e1dc776ee9fe96de45221c4fb9659f4a185
2015-06-18Have SCons qt4 tool check for real moc or qtchooserTobias Markmann
Some platforms, e.g. KUbuntu, provide a wrapper around Qt's commands that allow easy switching between different Qt versions. With this change SCons will execute the found moc tool and check whether it works or not. Test-Information: Tested with correctly installed Qt and uninstalled Qt on KUbuntu 14.04. Change-Id: I88f0a36af462e909829c30115aa5481abdcd3ac6
2015-06-14Add support for updating copyright on files in Copyrighter.py scriptTobias Markmann
Refactored the code to handle the following cases nicely: - no copyright for current user present yet - outdated copyright for current user present (with and without range) - copyright present and up to date Test-Information: Tested with SWIFT_LICENSE_CONFIG set to "Isode Limited|default". Change-Id: I4df475f7ecd55aebe892411b2323da50fcbca525
2015-06-14Fix SCons qt4 tool pkg-config detectionTobias Markmann
Correctly use pkg-config to test for Qt, if no qt path is specified in config.py. 'Import(…)' at the top caused an error which was hidden by try/catch at upper layer. Test-Information: Tested on Kubuntu 14.04, with and w/o qt path set and verified that no exception is thrown if Qt is registered at pkg-config. Change-Id: I82800c23e9f75bd5f6b136fe384a70165a92bb45
2015-06-02Fix qt4.py Scons module pkg-config support in case Qt is not presentTobias Markmann
Test-Information: Tested on Elementary OS 0.2.1 with all Qt components uninstalled. Previously it would abort configuration and build. Now it simply builds without Swift and other parts depending on Qt. Change-Id: I84c91985a0ba1fdab98e97f80621cd41e0a7507b
2015-05-26Have cl.exe write debug info to independent files for reliable parallel buildsTobias Markmann
By default cl.exe writes debug info to a static file name resulting in all cl.exe trying to write to the same file when using parallel builds. This leads to race conditions and can have parallel builds fail. This only takes effect if parallel builds are made by scons. Test-Information: Tested with VS 2013. Change-Id: I8ea7e9370f5b149ded608e4c6f5e66a3fc6301c4
2015-05-26Fix SCons architecture detection on FreeBSD 10Tobias Markmann
Test-Information: Tested on FreeBSD 10.0. Change-Id: Ic1c8a1637f0fbc9128973b41d6988a8afd61e387
2015-05-19Consolidate Python and SCons files to tab based indentationTobias Markmann
Test-Information: Verified that SCons still runs on OS X. Change-Id: I7e9b97f90ee5581a691a959b6f2c999d93e0be53
2015-05-19Enforce tab-only indentation in Python and SCons filesTobias Markmann
This also converts CheckTabs.py script to tab indentation. Test-Information: Ran the script over all files in our repo and it detected space and mixed indented Python files. Change-Id: Ifed86d64c8e87ed55e85ef4d35157e312b937291
2015-05-19Gracefully handle pkg-config when Qt is not installedTobias Markmann
Test-Information: Tested on Elementary OS 0.2.0. Without this patch scons crashed if not all required Qt libs are installed. Now it marks Qt as unavailable and will configure a build without Swift. Change-Id: I5aa28ab8438e4c326d16413deb3a3fa739c94480
2015-05-07Add support for Qt 5.4.1 to build and distribution process on WindowsTobias Markmann
Test-Information: Tested with Qt 5.3.2 and Qt 5.4.1 from qt.io website. Change-Id: Iada3e64e530d8a5b53b8b5c8943bcafbd9bd6c64
2015-05-05Fix scons2ninja.py for WindowsTobias Markmann
shlex.split has a 3rd parameter specifying whether or not to run in POSIX mode, which defaults to True. This breaks splitting of Windows paths so it is set to False on Windows. Test-Information: Tested on OS X 10.9.5 and Windows 8. Change-Id: Icdc9fc07e89a80249526daa8f13dba081f957670
2015-05-04Correctly handle full paths when detecting Clang/GCC compilersTobias Markmann
Test-Information: Tested behavior on Elementary OS 0.2.1. Change-Id: I887b85b78bfe5210844e0ea31f496fdbc8c21fa0
2015-05-04Ignore 3rdParty warnings on Linux platforms when using Clang or GCCTobias Markmann
Test-Information: Tested behavior on Elementary OS 0.2.1. Change-Id: Icc0611181fbf7dbe22d6c0c8cb18be9c1cdbc138
2015-04-30Disable potentially-evaluated-expression Clang warningTobias Markmann
Test-Information: Verified with Clang 3.7.0 on OS X. Change-Id: I345ef288163214288d41c3980c8e67529db0657d
2015-04-29Ignore compiler warnings from 3rdParty librariesTobias Markmann
When compiling with Clang or GCC, include 3rdParty libraries as system headers and frameworks (-isystem and -f). Test-Information: Tested with Clang on OS X. Change-Id: I184221ddc4b34d30ee6ba66e202953619b5afd56
2015-04-28Add Qt flags detection using pkg-config on Linux platformsTobias Markmann
Fix qt4.py SCons module to use the specific tools of the correct Qt verison. On non-Windows and non-Darwin platforms SCons will try to detect the correct Qt compiler and linker flags from pkg-config. Added the ability to build Slimber with Qt5. Fixed Qt5 support on Linux when using prebuilt Qt distribution from Qt. This patch adds support for building Swift on Arch Linux, with Qt4 and Qt5. Test-Information: Tested under Mac OS X 10.9.5 and Manjaor Linux (Arch Linux) in Qt4 and Qt5 configuration, and tested Qt5 Linux binary from their website on Arch Linux with the qt variable set in config.py. Change-Id: I2e19ab4aa7a26fdd989e2a12faa51a0f3f89c3ce
2015-04-09Disable documentation-unknown-command warnings in clangTobias Markmann
Test-Information: Tested on OS X 10.9.5 with Clang 3.7.0. Change-Id: Ic3a5ec77ca488c1688da35f75dd7424f8f59784b
2015-04-04Improve FixIncludes.py script to support in-place modificationTobias Markmann
In-place modification can be enabled by passing -i as second parameter. Added detection of other preprocessor directives not supported by this tool. It will report a warning in this case. Test-Information: Ran the tool over all .h/.cpp files in Swiften. Still build on OS X with clang. Change-Id: Ic6e15142379ab9fc8a2bc5a6f9c1c2a906dec692
2015-03-27Improve Windows MSI installer upgrade experienceTobias Markmann
Previously every time WiX heat.exe ran it generated new GUIDs for all the file components that MSI was going to install. Windows installer deletes components if there is no software/component left that is referencing it. This patch uses the -ag flag instead of the -gg flag for heat.exe so it will generate deterministic GUIDs based on the filename and other things instead of completely random new one on each run. In addition we schedule the upgrade to run after the new version has been installed. This way old files are first replaced with the new ones, shortcuts remain and are not deleted, pinned shortcuts remain usable. Afterwards MSI uninstalls the old version, specifically the components that are not reference anymore. Test-Information: Tested (a) two version upgrade with this patch and (b) an upgrade from a version without this patch to a version with this patch. a) The upgrade works as expected. MSI installs the new version and then uninstalls the old version. The pinned shortcut stays alive and works. b) In this case during the deinstallation files of the new installation are deleted, since there are two components with different GUIDs which however use the same filenames. Running a repair on this installation, or first deinstalling the old version and then the new one manually fixes this. Change-Id: I842a288d837962e77efaa15b17d3877e923c7e49
2015-02-12Fix missing to return some dependencies in windeployqt-based ↵Tobias Markmann
createWindowsBundle implementation Test-Information: Did a clear rebuild with dist=1 and confirmed that it now starts the WiX process after all dependencies are copied over. Change-Id: Icbb9ec127b0d56e10f2620790f0fc6b6a29d5aa5
2015-02-06Use windeployqt.exe if available and Win distribution documentation fixTobias Markmann
If windeployqt.exe is available for Qt5, it will be used to detect which Qt DLLs to put in the Windows distribution and its dependencies correctly. Added a note to our Windows building documentation about the VS redistributable. Test-Information: Tested building a MSI package on Windows 8.1 Pro with Qt 5.3.2 32-bit msvc2013_opengl which successfully installs and runs. Change-Id: I786da40d6467f1de8e64bfae275f8363ac1d5ba8
2014-12-15Update Copyright In BuildToolsKevin Smith
Change-Id: I353f4ee3c2df722c2af5c5cd51c4ac4e5d5c67dd
2014-12-10Use ar tool from the cross-compiling toolchain when building for Android.Tobias Markmann
Test-Information: Tested with nm tool from cross-compiling toolchain. Before it would report 'Malformed archive' for libSwiften.a. Now it correctly lists all symbols without reporting an error. Change-Id: I3901bb206487a05124986bbdc53f336aed932f5b
2014-12-10Add FixIncludes.py utility.Tobias Markmann
This tool reads in implementation or header files and groups and sorts include statements at the top according to our guidelines. It does not support files using #if statements in head of the file. Change-Id: I34b02546ecaf1653372f6edd319126b2ebb22ab5
2014-11-24Disable file-transfer support for iOS.Tobias Markmann
iOS SDK does not have net/route.h interface as part of its public API. File-transfer requires UPnP/NAT-PMP for a good user experience which in turn require detection of the default gateway/router. Disabiling file-transfer support for iOS until we know a valid way to detect the default gateway/router on iOS. Test-Information: Tested against iPhone/iPhoneSimulator8.1 SDKs. Change-Id: I1303f37c025e8c6309acefcd80b9b30a3ac18fbb
2014-11-24Use the correct compiler/linker on modern iOS SDKs.Tobias Markmann
Test-Information: Tested against iPhone/iPhoneSimulator8.1 SDKs. Change-Id: I8837f653799587edf43885c3632b1f647832f429
2014-11-13Fix build system documentation typo.Tobias Markmann
Test-Infromation: No testing required. Change-Id: I93dbd239f37d3982ddaf939cd903127349e404f3
2014-11-13Fix iOS build and add iOS build documentation.Tobias Markmann
Test-Information: Tested on OS X 10.9.5 with XCode 6.1. Change-Id: Ib223977192fce274e5585ef0768fd755b1fa734d
2014-10-13Regress Python requirement to 2.4 againKevin Smith
Test-information: Ran through the configuration step on a machine with only Python 2.4 Change-Id: I3d5ba54395ede875c7f21c2769151fe6d308e760
2014-10-06Allow scons to not require an IDN libraryKevin Smith
This will clearly break all the tests, Swift, Sluift etc., but is useful if someone wants to use Swiften and inject their own IDN provider. Test-information: Compiles with Isode's IDN provider Change-Id: Ia55991054f42f332bf34b653d7b55f64f654820e
2014-10-01Port many of Isode's local fixes upstreamKevin Smith
Includes fixes to: Build with new Visual Studio and Boost Avoid error caused when Avahi is present but Qt is not Make declaration of XMPPRosterImpl::addContact consistent with implementation Includes enhancements to: Allow user-configurable mt.exe Allow splitting openssl paths Allow disabling gconf lookup Make idn support optional Allow disabling various library detections Remove use of non-Python2.4 features in sconscripts Test-Information: Builds Change-Id: Iee91ee80291a8bdf87cc169c915e4dad1cc1055b
2014-06-07scons2ninja: Don't buffer SCons outputRemko Tronçon
Change-Id: I6a2c485a90a988e9560f4c4af0c5d118542cfa44
2014-06-01Fix .deb packagingKevin Smith
Contcatenating the .. onto the filename breaks os.path.dirname. Change-Id: Ib018276166c9554c9adf53342d9c8bc5f954d13d
2014-02-22Make git and wix wrappers in build system more convenient for use by other ↵Kevin Smith
projects Change-Id: I173f42bfe2dde7d18be3d54976649aa1bac13dbf
2014-02-16Don't try to install git hooks when Swift is used as a submodule.Kevin Smith
Change-Id: I7c83c416507635f5bba6411824bd1a540dffc910
2014-01-19Make SCons Qt4 tool work on all non-Windows/OS X platformsRemko Tronçon
Change-Id: Ib59fe1d9d71194f9b34b655ab817811d673c5187
2014-01-19Sluift: Add iTunes & PEP User Tune supportRemko Tronçon
Change-Id: I25b3840bb40ce38531922cc737bc82828e026d3f
2014-01-03Sluift: Custom console/interpreterRemko Tronçon
- Prints results of each command (if it can be interpreted as an expression) - Stores results of last command in _1, _2, ... - Supports tab completion - Compatible with Lua 5.2 Other changes: - Add support for specifying custom editline library - Don't load sluift into global namespace. Tab completion should be convenient enough. Change-Id: I2a26346469d67c281d09d47cacaa0b267f5ea9f9