summaryrefslogtreecommitdiffstats
path: root/config.tests/common
Commit message (Collapse)AuthorAgeFilesLines
* Centralize the x86 SIMD testing in one placeThiago Macieira2017-11-306-164/+0
| | | | | | | | Since the x86_simd/main.cpp file already has all the source for each and every test anyway, just reuse it. Change-Id: I938b024e38bf4aac9154fffd14f779f450827fb9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'origin/5.9' into devOswald Buddenhagen2017-08-0237-1068/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/xcb/qxcbconnection.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp src/plugins/styles/mac/qmacstyle_mac.mm src/widgets/widgets/qdockarealayout.cpp src/widgets/widgets/qmainwindow.cpp src/widgets/widgets/qmainwindowlayout.cpp src/widgets/widgets/qmainwindowlayout_p.h tests/auto/corelib/tools/qlocale/tst_qlocale.cpp tests/auto/other/macnativeevents/BLACKLIST tests/auto/widgets/widgets/qmenu/BLACKLIST Change-Id: Ic8e724b80a65e7b1af25511b0e674d209265e567
| * configure: un-namespace remaining non-inline configure testsOswald Buddenhagen2017-08-029-280/+0
| | | | | | | | | | | | | | only few tests remain, and many of these were mis-classified anyway. Change-Id: Ic3bc96928a0c79fe77b9ec10e6508d4822f18df2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * configure: Add a feature to write tests in the .json fileThiago Macieira2017-08-0228-767/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're adding a lot of unnecessary files that end up later as cargo-cult, for at most a handful of lines. So instead move the testcases directly into the .json file. The following sources were not inlined, because multiple tests share them, and the inlining infra does not support that (yet): - avx512 - openssl - gnu-libiconv/sun-libiconv (there is also a command line option to select the exact variant, which makes it hard/impossible to properly coalesce the library sources) The following sources were not inlined because of "complications": - verifyspec contains a lengthy function in the project file - stl contains lots of code in the source file - xlocalescanprint includes a private header from the source tree via a relative path, which we can't do, as the test's physical location is variable. - corewlan uses objective c++, which the inline system doesn't support reduce_relocs and reduce_exports now create libraries with main(), which is weird enough, but doesn't hurt. Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Change-Id: Ic3a088f9f08a4fd7ae91fffd14ce8a262021cca0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * configure: prune checks for ancient compilers from some testsOswald Buddenhagen2017-08-021-3/+0
| | | | | | | | | | | | | | | | these would be caught by the central verifyspec test, if we even got that far. Change-Id: I3eda80c4614b94f869d907f0a40166f4914ea692 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * configure: don't force debug build for arch & cpu feature testsOswald Buddenhagen2017-08-029-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | amends b4525b3407, which gives no indication for why this was done. judging by other tests, it wasn't cargo-culted. i presume it was just about disabling debug-and-release, and the debug choice was arbitrary. the central system nowadays does the same, just that it uses release. amends 1533bfc5fc, which certainly _was_ cargo-culted from the former. as a side effect, this removes some other CONFIG manipulations which are handled centrally or are wholly ineffective nowadays. Change-Id: Ib9af2837925a2f19af05506e798a26d363635735 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add proper detection of x86 RDRAND instructionThiago Macieira2017-06-122-0/+59
| | | | | | | | | | | | | | | | | | The instruction is "RDRAND", but the feature name, according to GCC, is RDRND, so I had to change some macros in qsimd_p.h. Change-Id: Icd0e0d4b27cb4e5eb892fffd14b5166779137e63 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-071-0/+2
|\| | | | | | | | | | | | | Conflicts: src/widgets/widgets/qmenu.cpp Change-Id: I6d3baf56eb24501cddb129a3cb6b958ccc25a308
| * Fix build with clang 4.0 and libstdc++ 7.1.1Sérgio Martins2017-06-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this setup clang cannot use c++1z yet. Fixed with clang 5.0. In file included from /data/sources/qt/qt5/qtbase/src/corelib/codecs/qtextcodec.cpp:53: In file included from ../../../include/QtCore/5.9.1/QtCore/private/qcoreglobaldata_p.h:1: In file included from ../../../include/QtCore/5.9.1/QtCore/private/../../../../../../../../../sources/qt/qt5/qtbase/src/corelib/kernel/qcoreglobaldata_p.h:55: In file included from ../../../include/QtCore/qmap.h:1: In file included from ../../../include/QtCore/../../../../../../sources/qt/qt5/qtbase/src/corelib/tools/qmap.h:52: In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/map:60: In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/bits/stl_tree.h:72: In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/bits/node_handle.h:39: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../include/c++/7.1.1/optional:1032:27: error: use of class template 'optional' requires template arguments Change-Id: Ib4cd8a9f5791a6e6cae4e6d61dfec3ad50dd63ab Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-05-071-3/+10
|\| | | | | | | | | | | | | | | Conflicts: src/network/access/qnetworkreply.cpp tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp Change-Id: Iadf766269454087e69fb216fc3857d85b0ddfaad
| * alloca: detect whether alloca.h existsOswald Buddenhagen2017-05-031-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can't depend on QT_HAS_INCLUDE for such an important functionality in QtQml, so detect at configure time. alloca() is not a POSIX function (it apparently first appeared in Version 32V AT&T UNIX), so the actual header that defines it varies from system to system. Clearly, if alloca.h exists, that's the one, so we try it first. On most other systems that don't define it, it's in stdlib.h. The only exception is Windows, where it's actually defined in malloc.h. Task-number: QTBUG-59700 Started-by: Thiago Macieira <thiago.macieira@intel.com> Change-Id: Icd0e0d4b27cb4e5eb892fffd14b4b2b389a4684e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-04-074-54/+7
|\| | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/linux-icc/qmake.conf mkspecs/macx-icc/qmake.conf mkspecs/win32-icc/qmake.conf src/gui/painting/qgrayraster.c Change-Id: Ib08c45ea3215be05f986ecb3e1f4b37d209aa775
| * Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-04-062-47/+0
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp src/platformsupport/fontdatabases/freetype/qfreetypefontdatabase.cpp src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp src/widgets/widgets/qtabbar.cpp Change-Id: Iaa9daee5f7a6490d56257a3824730a35751ceb05
| | * Detect the (stated) C++ standard edition at build timeThiago Macieira2017-03-312-47/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The configure-time detection (cxx11default) isn't enough if the compiler can be changed. This is especially necessary if Qt is compiled with a compiler that defaults to >= C++11 (e.g., GCC 6) and then the user selects a compiler another compiler (e.g., Clang) via -spec option. In that case, we'd miss adding the -std=c++11 or -std=gnu++11 option to the command-line, causing the compilation to fail. As a nice side-effect, even moc without moc_predefs.h will now get the __cplusplus setting. Task-number: QTBUG-58321 Change-Id: I74966ed02f674a7295f8fffd14a8be35da9640e1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * | f16c: Use the packed intrinsics instead of scalar onesThiago Macieira2017-04-061-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | MSVC, Apple's Clang and Clang prior to 3.9 do not recognize _cvtss_sh and _cvtsh_ss. So expand the operation to use directly the packed intrinsics. Change-Id: I27b55fdf514247549455fffd14b2046fd638593d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * | qnx: make alloca config test pass on QNX 7Samuli Piippo2017-04-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test failed on QNX 7, even though alloca is available. On QNX7, it's a macro that expands to a line with NULL, but without define for it. alloca.cpp:44:5: error: 'NULL' was not declared in this scope Task-number: QTBUG-59700 Change-Id: I3631d139990020a3adbab8b72e49929b6e721e80 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-03-141-13/+19
|\| | | | | | | | | | | | | | | | | | | | Conflicts: src/widgets/widgets/qpushbutton.cpp Change-Id: I615de00e6e64540c50f658d4d8ab3e002d701a81
| * | config.tests: Replace LGPL21 with LGPL license headerKai Koehne2017-03-031-13/+19
| | | | | | | | | | | | | | | | | | | | | Also use canonical contact url. Change-Id: Ia1f814ce822d247f3af14c1ea46e07cfad0fda09 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* | | x86: Add detection of the AES and SHA New InstructionsThiago Macieira2017-02-214-0/+105
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AES instructions were first introduced with the Westmere shrink (22nm) of the Nehalem architecture. The SHA instructions are still pending on Intel architecture, but is available on AMD family 17h (gcc argument -march=znver1). Both features operate on SSE registers, so that's why the MSVC command- line argument is the SSE2 one and the configure-time tests depend on features.sse2. The qmake feature names end in "ni" because "aes" and "sha" are too simple and could clash with other uses. The QT_COMPILER_SUPPORTS_ macro doesn't have the "NI" suffix because it has to match the GCC/Clang predefined macro. Change-Id: I445bb15619f6401494e8fffd149dbd1f862ff51c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Use native support for fp16 where availableAllan Sandfeld Jensen2017-02-162-0/+59
| | | | | | | | | | | | | | | | | | | | Use F16C or ARM FP16 if available at compile time. Configure check added because older clang compilers have F16C defines and flags but not all the intrinsics. Change-Id: I71f358b8fd003e70ab8fcf35097414591e485112 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add a configure check for alloca()Kimmo Ollila2017-01-312-0/+47
|/ | | | | | | | | | Alloca() is not supported on all platforms, like INTEGRITY on ARM, so adding a configure check for it. This can be used when building QtQml and 3rd party code, in particular PCRE2 and SQLite. Change-Id: I9785e16c21f67d1a68fef567e18c3356170f027e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* move device spec validation to configureOswald Buddenhagen2016-12-131-0/+36
| | | | | | | | | | | instead of letting the specs validate themselves on each call, let them only define a callback for use by the verifyspec configure test. this is somewhat faster, and allows them to be loaded before qdevice.pri is populated. Change-Id: I2b60d006b33bbf42c28949f10ad429520ed32f46 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* invert the logic of the c++98 default testOswald Buddenhagen2016-11-071-2/+2
| | | | | | | | | this is much more intuitive, and actually produces a sensible result with configure -recheck after a compiler upgrade. Change-Id: Icfa0b85377d9fc014e66490c8ebf6c9236df978e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix issue causing pch configure test to always failJake Petroules2016-08-241-0/+1
| | | | | | | | | This fixes a regression introduced in 4a1bafcc4ee5b7d968620808e155c1617aa6f273. Change-Id: Iafeec043c39af79cee8b53cf74dcd452c03a4826 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* rewrite makespec verification with qmake based systemOswald Buddenhagen2016-08-182-0/+2
| | | | | | | | cleaner, and covers windows as well. Change-Id: I0e884909a3f49610fab750ba1ef6112f43e5d5d1 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* rewrite library handling in configureOswald Buddenhagen2016-08-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | so far, each library was distributed over a test and (optionally) a 'library' output of a feature. this was conceptually messy and limiting. so instead, turn libraries into a category of their own. libraries now support multiple properly separated sources, which makes overriding them a lot saner. sources can be conditional to accommodate platform differences. as an immediate consequence, move (almost) all library references from the config test projects to the json file. a few tests were excluded, because they are doing somewhat magic things that should not be handled in this bulk change: - freetype: .pri file shared with actual source code - clock-gettime: -lrt is conditional, and there is a .pri file which is shared with actual source code - ipc_posix: -lrt & -lpthread conditional - iconv: -liconv conditional the multi-source mechanism is used to make a variety of tests work on windows, where the library name differs from unix (and sometimes between build configurations). some tests still needed minor adjustments to actually work. on the way, fix up disagreements between manually specified libraries and pkg-config lines (affecting several xcb-related tests). Change-Id: Ic8c58556fa0cf8f981d386b13ea34b4431b127c5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* get rid of test type 'shell'Oswald Buddenhagen2016-08-123-0/+48
| | | | | | | | | | | | it's bound to the bourne shell, which is not readily available on windows hosts. on the way, the pch, fvisibility, and bsymbolic_functions tests were rewritten as regular compile tests. they now just verify that qmake's built-in support for the tested features actually works. Change-Id: Ibac246f21b5ececa40da3f576dc789982eaf9fdf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Merge remote-tracking branch 'origin/5.7' into devEdward Welbourne2016-08-012-52/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure 5.7 now supports clang on android; but dev re-worked configure src/gui/kernel/qevent.h One side renamed a parameter of a constructor; the other added an alternate constructor on the next line. Applied the rename to both for consistency. tests/auto/tools/moc/tst_moc.cpp Each side added a new test at the end. .qmake.conf Ignored 5.7's change to MODULE_VERSION. configure.json No conflict noticed by git; but changes in 5.7 were needed for the re-worked configure to accommodate 5.7's stricter handling of C++11. Change-Id: I9cda53836a32d7bf83828212c7ea00b1de3e09d2
| * move c++11 test into qcompilerdetection.h and make it stricterOswald Buddenhagen2016-07-222-52/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | it positively makes no sense to have a configure test which will be never reached due to the configure/qmake bootstrap failing with a slew of totally unhelpful error messages. pre-standardization partial c++11 implementations are now rejected, except for VS2013, which is still sufficient despite not announcing full compatibility. Change-Id: I58af10e03960af06b80cedac105cf8433f7a1745 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Reimplement compiler default detectionLars Knoll2016-07-152-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | Change d1b09dba45c4b3ee0f31cd9bbf6941f17afd48f0 removed the support to detect the C++ version the compiler used by default. In essence, it forced the compiler in C++11 mode, if the default was still C++98. This change reimplements the functionality in the new configuration system. Change-Id: Ib4bf7ade85288776f9ae2a870f19764df727e0a5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-06-134-0/+82
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config_help.txt configure mkspecs/features/uikit/sdk.prf src/corelib/global/qhooks.cpp src/corelib/io/qfilesystemwatcher.cpp src/corelib/io/qlockfile_unix.cpp src/corelib/tools/qalgorithms.h src/gui/kernel/qwindowsysteminterface.h src/gui/text/qtextdocument_p.cpp src/network/access/access.pri src/network/access/qnetworkaccessmanager.cpp src/network/access/qnetworkreplynsurlconnectionimpl.mm src/src.pro src/testlib/qtestcase.cpp src/widgets/kernel/qwidgetbackingstore_p.h src/widgets/styles/qwindowscestyle.cpp src/widgets/styles/qwindowsmobilestyle.cpp tests/auto/corelib/io/qdiriterator/qdiriterator.pro tests/auto/corelib/io/qfileinfo/qfileinfo.pro tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp tools/configure/configureapp.cpp Change-Id: Ibf7fb9c8cf263a810ade82f821345d0725c57c67
| * configure: check whether std::atomic<T> works for function pointersThiago Macieira2016-06-094-0/+82
| | | | | | | | | | | | | | | | And ask the user to apply one of the patches we're carrying to their Standard Libraries. Change-Id: I7e6338336dd6468ead24ffff141139c79056922e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove the c++default testLars Knoll2016-03-152-15/+0
|/ | | | | | | | | This test was the old way of checking whether to enable c++11 functionality. That is now anyway required, so there is no need for this test anymore. Change-Id: I083e85a4698cac6bd9b573525c7b977f63e14113 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Merge "Merge remote-tracking branch 'origin/5.6' into dev" into refs/staging/devLiang Qi2016-01-262-2/+2
|\
| * Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-212-2/+2
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice_p.h src/corelib/kernel/qvariant_p.h src/corelib/tools/qsimd.cpp src/gui/kernel/qguiapplication.cpp tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp Change-Id: I742a093cbb231b282b43e463ec67173e0d29f57a
| | * Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2016-01-192-2/+2
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/common/atomic64/atomic64.cpp configure src/3rdparty/forkfd/forkfd.c src/corelib/io/forkfd_qt.cpp src/widgets/kernel/qwidgetwindow.cpp tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp tools/configure/configureapp.cpp Change-Id: Ic6168d82e51a0ef1862c3a63bee6722e8f138414
| | | * Remove "FOO module" from config.tests/commonThiago Macieira2015-12-042-2/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: I14839ba5678944c2864bffff1417413f16d4ffeb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| | | * Auto-detect whether 64-bit std::atomic really worksThiago Macieira2015-12-042-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The C++ standard says it must, but some badly-configured toolchains seem to be lacking support. In particular, for some 32-bit platforms without native support for them, GCC implements 64-bit atomics via out-of-line functions in libatomic. If that library is missing... well, then std::atomic 64-bit doesn't work and we mustn't try to use it. This was found when trying to compile Qt 5.6 for MIPS 32-bit: Linking library libQt5Core.so.5.6.0 .obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::load(std::memory_order) const': /opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:500: undefined reference to `__atomic_load_8' .obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::store(unsigned long long, std::memory_order)': /opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:478: undefined reference to `__atomic_store_8' Yocto bug report: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8274 Change-Id: I42e7ef1a481840699a8dffff140224d6614e5c36 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 3d7586b760550b7d89594c8d7462fc30b868ecc6) Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
* | | | Update the Intel copyright yearThiago Macieira2016-01-215-5/+5
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | Not that we require it, but since The Qt Company did it for all files they have copyright, even if they haven't touched the file in years (especially not in 2016), I'm doing the same. Change-Id: I7a9e11d7b64a4cc78e24ffff142b4c9d53039846 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | Updated license headersJani Heikkinen2016-01-1515-205/+295
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | Silence cl.exe warning about -arch:SSE2 being unknown in 64-bit buildsThiago Macieira2015-12-058-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That implies we need to differentiate between a variable set but empty and an empty variable. GCC, Clang and the Intel compiler accept -msse2 on 64-bit builds without warning (they also accept -mno-sse2), but the Microsoft compiler does not have that option. Change-Id: I54233388ba10994996ae3e749fd829085e8fd7b7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Replace qdtoa and qstrtod implementation by a 3rdparty libraryUlf Hermann2015-11-023-0/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also fixes the underlying cause of QTBUG-44039 and QTBUG-43885. You can choose between system, qt, and no libdouble-conversion support. If you choose "no", snprintf_l and sscanf_l will be used. By default, system double conversion is used if the system provides a double-conversion library. Otherwise the bundled libdouble-conversion is built. sscanf_l and snprintf_l are not used by default as the planned "shortest" conversion mode to produce the shortest possible string will give less precise results when implemented with snprintf_l. Change-Id: I8ca08a0fca5c54cf7009e48e771385614f6aa031 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | configure: Add support for detecting AVX512 instructionsThiago Macieira2015-09-252-0/+109
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tested on Linux with Clang 3.7, GCC 4.9, 5.1 and 6.0, ICC 16 beta; on OS X with Clang-XCode 6.4, ICC 16 beta; on Windows with MSVC 2013 and ICC 15. MinGW is not tested. GCC 4.9: AVX512F AVX512ER AVX512CD AVX512PF GCC 5 & 6: AVX512F AVX512ER AVX512CD AVX512PF AVX512DQ AVX512BW AVX512VL AVX512IFMA AVX512VBMI Clang 3.7: AVX512F AVX512ER AVX512CD Clang-XCode: <none> ICC 15 & 16: AVX512F AVX512ER AVX512CD AVX512PF AVX512DQ AVX512BW AVX512VL MSVC 2013: <none> Change-Id: Ib306f8f647014b399b87ffff13f1da1b161c31d7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Auto-detect whether 64-bit std::atomic really worksThiago Macieira2015-09-222-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The C++ standard says it must, but some badly-configured toolchains seem to be lacking support. In particular, for some 32-bit platforms without native support for them, GCC implements 64-bit atomics via out-of-line functions in libatomic. If that library is missing... well, then std::atomic 64-bit doesn't work and we mustn't try to use it. This was found when trying to compile Qt 5.6 for MIPS 32-bit: Linking library libQt5Core.so.5.6.0 .obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::load(std::memory_order) const': /opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:500: undefined reference to `__atomic_load_8' .obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::store(unsigned long long, std::memory_order)': /opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:478: undefined reference to `__atomic_store_8' Yocto bug report: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8274 Change-Id: I42e7ef1a481840699a8dffff140224d6614e5c36 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add detection of C++14 and C++1z compiler featuresThiago Macieira2015-09-054-0/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][General Improvements] Qt's buildsystem now detects whether the compiler supports C++14 and experimental support for C++1z. If the compiler supports it, then Qt is automatically compiled using that support. \ This does not apply to user applications built using qmake: those are still built with C++11 support only. To enable support for C++14 in your application, add to your .pro file: CONFIG += c++14 (similarly for C++1z). Change-Id: Ib056b47dde3341ef9a52ffff13ef1f5d01c42596 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Detect which C++ standard edition the compiler defaults toThiago Macieira2015-08-252-0/+15
| | | | | | | | | | Change-Id: I2991557a5cc74cd18e88ffff13f670bf25d5423e Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Require more of the C++11 Standard LibraryThiago Macieira2015-08-061-8/+2
|/ | | | | | | | | | | | | | | Since libstdc++ builds on OS X and QNX 6.5 are no longer supported, simply require <initializer_list> and std::move in order to claim C++11 support works. The minimum OS X versions need to be fixed elsewhere. Change-Id: Ib056b47dde3341ef9a52ffff13ef1d2ac3923f5c Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Replace MAC OS X with OS XNico Vertriest2015-06-301-1/+1
| | | | | | Task-number: QTBUG-46374 Change-Id: I7bc633ab551740bd328a24b0ccae1d534af47138 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Update copyright headersJani Heikkinen2015-02-119-78/+70
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* Add libproxy backend for QNetworkProxyFactoryDaniel Molkentin2015-02-052-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | It will be used on Unix systems if the required dev package is present. (Detected by a configure compile test.) You can configure with -no-libproxy to avoid the dependency. It will not be used on OS X or Windows, as we already implement the native API for getting proxies there. Currently we use whatever PAC runner is provided by the distro for running PAC scripts - if we want to run PAC scripts using Qt, then we would have to implement a pacrunner plugin to libproxy. Note that their webkit pacrunner is using javascriptcore already. Tested using the libproxy 0.4.7 that is included in Ubuntu 12.04. Re-tested using Ubuntu 14.04 which ships libproxy 0.4.11. It works except when both socks and http proxies are configured in the manual settings - in that case libproxy returns only the socks proxy. This seems to be covered by libproxy issue 119. [ChangeLog][QtNetwork] Introduce libproxy backend for Unix platforms, enabled automatically if the required dev package is present Task-number: QTBUG-26295 Change-Id: I521c0a198fcf482386ea8a189114a0077778265c Reviewed-by: Richard J. Moore <rich@kde.org>