summaryrefslogtreecommitdiffstats
path: root/mkspecs/linux-icc/qmake.conf
Commit message (Collapse)AuthorAgeFilesLines
* qmake: Stop using -isystem flagDmitry Shachnev2020-06-061-1/+0
| | | | | | | | | | | This option changes the order of include paths, which can cause problems of various kinds. See https://bugs.debian.org/958479 for an example. The benefit of that option is minimal for what it was intended. Pick-to: 5.15 5.12 Change-Id: I80eeabd09764df290b60bc59aeb2f90d07723608 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* centralize ICC flags for *nix-systems toolchainsAlexander Shevchenko2018-06-221-99/+17
| | | | | | | | | | | linux-icc and macx-icc toolchains contain a significant amount of code which can be merged to a common configuration file. as a side effect, such merge resulted in reduction a parts of linux-icc and macx-icc toolchains to the common view. Change-Id: I37d110734eeeb9bd61ca0aa942de380ac8e75f1c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make the use of -fdata-sections and --gc-sections more generic in QtMikhail Svetkin2018-04-271-1/+1
| | | | | | | | | | Add qmake feature and configure option, which optimze the size of static exectuable. Use for static build. Enabled via configure --gc-binaries, or CONFIG += gc-binaries in 3rd party projects. Change-Id: I3c25b02caaef6a4afc6019afc9c67122dd11696d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-08-311-1/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/examples.pro qmake/library/qmakebuiltins.cpp src/corelib/global/qglobal.cpp Re-apply b525ec2 to qrandom.cpp(code movement in 030782e) src/corelib/global/qnamespace.qdoc src/corelib/global/qrandom.cpp src/gui/kernel/qwindow.cpp Re-apply a3d59c7 to QWindowPrivate::setVisible() (code movement in d7a9e08) src/network/ssl/qsslkey_openssl.cpp src/plugins/platforms/android/androidjniinput.cpp src/plugins/platforms/xcb/qxcbconnection.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/widgets/widgets/qmenu.cpp tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp Change-Id: If7ab427804408877a93cbe02079fca58e568bfd3
| * Remove unused mkspecs variable QMAKE_LIBS_NISJoerg Bornemann2017-08-281-1/+0
| | | | | | | | | | Change-Id: I09a161fe4706c19eba4ff54cdb03a10edc34871a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Add proper detection of x86 RDRAND instructionThiago Macieira2017-06-121-1/+2
| | | | | | | | | | | | | | | | | | 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-05-071-1/+4
|\| | | | | | | | | | | | | | | Conflicts: src/network/access/qnetworkreply.cpp tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp Change-Id: Iadf766269454087e69fb216fc3857d85b0ddfaad
| * Add configure flag to optimize Qt for sizeAllan Sandfeld Jensen2017-04-291-1/+4
| | | | | | | | | | | | | | | | Adds default off configure flag to use compiler optimizations for size instead of the default speed/size trade-off. Change-Id: I36702064ef2cc743d2d03a386adf5cefd5371b6e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-04-071-0/+1
|\| | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/linux-icc/qmake.conf mkspecs/macx-icc/qmake.conf mkspecs/win32-icc/qmake.conf src/gui/painting/qgrayraster.c Change-Id: Ib08c45ea3215be05f986ecb3e1f4b37d209aa775
| * Fix detection of F16C for the Intel compiler (again) and Visual StudioThiago Macieira2017-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Neither the Intel compiler nor Visual C++ have a dedicated switch to enable F16C support, like GCC and Clang do. So we used the AVX switch for that in commit 8241d51f7049d48912ce25fbd49ef4d22c58e340, as it was the closest, lowest denominator. That was incorrect and insufficient. The Intel compiler silently miscompiles the intrinsics with -xAVX, making calls to out-of-line functions like _mm_cvtps_ph, which don't exist. So we actually have to use AVX2 support to generate correct code. That might be a problem later, since Ivy Bridge supports F16C but not AVX2. Visual C++ is able to generate F16C code with just -arch:AVX. Either way, since there's no dedicated command-line switch, there's also no dedicated preprocessor macro. We're using __AVX2__ for both compilers, as that's a sufficient condition to indicate a processor that supports F16C. Change-Id: I27b55fdf514247549455fffd14b205b8d8b86da7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * x86: Detect F16C with the Intel compiler tooThiago Macieira2017-04-021-0/+1
| | | | | | | | | | | | | | | | | | The .pro file requires the QMAKE_CFLAGS_F16C to be set to something. So set it to AVX, as the instructions require the VEX prefix anyway (ICC has no dedicated option for just F16C). Change-Id: I27b55fdf514247549455fffd14b171940afd35a2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-03-021-1/+1
|\| | | | | | | Change-Id: I84097f8e7b3b2128028bd7693c913d6968b82bfe
| * Remove alias options from linux-icc/qmake.confThiago Macieira2017-02-211-1/+1
| | | | | | | | | | | | | | | | | | They are the default with icc. Change-Id: Ibc5c715fda334a75bd2efffd14a478c20b527d7c Reviewed-by: Robert Pancoast <RobertPancoast77@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | x86: Add detection of the AES and SHA New InstructionsThiago Macieira2017-02-211-0/+2
|/ | | | | | | | | | | | | | | | | | | 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>
* linux-icc: Remove -falign-functions=16Thiago Macieira2017-01-311-1/+1
| | | | | | | | | | | There's no reason to have that. Let the compiler decide whether it wants to align or not. Current versions seem not to want to align beyond multiple of 2. Change-Id: Iab7c358838e1487387a2fffd149d73e0a218d3c2 Reviewed-by: Dominik Haumann <dhaumann@kde.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* linux-icc: always compile applications as position-independent execsThiago Macieira2017-01-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | The problem isn't the compiler, but the linker, so we ought to turn this flag on for all ELF-based systems where we compile Qt with -Bsymbolic, but so far only the Intel compiler has been affected. We can turn it on as needed for other systems. The cause of the problem is the way that ICC materializes the pointer- to-member-function: it stores the full 2*sizeof(void*) data in an anonymous variable, so that it can load it in one go, such as one 16- byte SSE aligned load on 64-bit systems. That relocation in a data variable gets turned into a fixed-position copy relocation by the linker, which breaks the signal-identification mechanism. GCC and Clang are likely to be affected if anyone did: static const auto destroyed = &QObject::destroyed; QObject::connect(obj, destroyed, [](){}); Task-number: QTBUG-52439 Change-Id: I0d69eaf61af149db9574fffd149d0cfb08459c33 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Disable ICC warning 3373Thiago Macieira2016-12-071-1/+1
| | | | | | | | | | | | | | | | | | | This warning does not make sense. it seems to trigger when in code like the following in template functions: auto x = 1, y = 2; 3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type Other reports on the Internet indicate that no one understands what triggers this warning and have just worked around it. Additionally, the same warning exists on other compilers with the same text, so it's likely come from the EDG front-end. This has been reported to Intel. Change-Id: I73fa1e59a4844c43a109fffd148d45065ab69eff Intel-Issue-ID: 6000164202 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Update mkspecs to use "c++11" instead of "c++0x"Thiago Macieira2015-10-181-2/+2
| | | | | | | | We no longer support any compilers that don't know the actual version number of the standard. Change-Id: Ib056b47dde3341ef9a52ffff13ef154791dd0d22 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* configure: Add support for detecting AVX512 instructionsThiago Macieira2015-09-251-0/+7
| | | | | | | | | | | | | | | | | 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>
* ICC: Remove the -fno-jump-tables workaround.Thiago Macieira2015-09-211-1/+1
| | | | | | | | I added this sometime in the past to work around some ICC bug in position-independent code. Modern versions don't have the bug. Change-Id: I42e7ef1a481840699a8dffff140049ce927cdff2 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* ICC: Update LTCG-related optionsThiago Macieira2015-09-211-1/+5
| | | | | | | | See https://software.intel.com/node/522852. There are options to turn off LTCG and, on Linux, to enable/disable fat objects. Change-Id: I42e7ef1a481840699a8dffff14003db5a9c95b83 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Add a linker version script to Qt librariesThiago Macieira2015-09-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | This linker script is only enabled for systems with GCC or GCC-like compilers, though technically it should work on the BSDs too (will enable after testing). For regular modules, this declares one ELF version "Qt_5" and places all QtCore symbols inside, then it declares unused ELF versions "Qt_5.x" for each older minor release. For modules declared "internal_module", all symbols are placed in version Qt_5_PRIVATE_API. The big advantage of an ELF version is that, when we do Qt 6, both versions of QtCore could be loaded in memory without conflicts and all symbols would be resolved to the correct library. No module can talk to both at the same time, but this avoids mistakes of loading them indirectly by plugins. The extra Qt_5.x versions will be used in the next commit. Change-Id: I049a653beeb5454c9539ffff13e3fe6f050fdf31 Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add detection of C++14 and C++1z compiler featuresThiago Macieira2015-09-051-0/+6
| | | | | | | | | | | | | | | [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>
* Make CONFIG += c++11 by default not disable GNU extensionsThiago Macieira2015-07-171-0/+1
| | | | | | | | | | | | | | | | | | | Prefer -std=gnu++11 unless strict_c++11 is defined. You can enable strict C++11/C++14 mode by using CONFIG += strict_c++ That is enabled for Qt's own code, so we we don't accidentally use GNU extensions in portable code. There's no support for strict C++98 mode (that is, the -ansi option). [ChangeLog][qmake] By default, GNU extensions are now enabled with Clang, GCC and ICC even in C++11 and C++14 modes. To disable the GNU extensions, add to your .pro file: CONFIG += strict_c++. Change-Id: Ib056b47dde3341ef9a52ffff13ef14de2169bef5 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Require -fPIC instead of just -fPIE for -reduce-relocationsThiago Macieira2015-05-071-1/+1
| | | | | | | | | | | | | | | | | GCC 5 combined with a recent binutils have a new optimization that allows them to generate copy relocations even in -fPIE code. Clang has the same functionality when compiling an executable with -flto. We need to let the compilers know that they cannot use copy relocations, so they need to use really position-independent code. Position independent code throughout is not really required. We just need the compilers to use position-independent access to symbols coming from the Qt libraries, but there's currently no other way of doing that. Task-number: QTBUG-45755 Change-Id: I0d4913955e3745b69672ffff13db5df7377398c5 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Add link-time optimization support for Clang, GCC and ICCThiago Macieira2014-07-231-0/+3
| | | | | | | | | | | | | | | GCC currently requires fat object files for static libraries, since the linker would otherwise not load the .o file from the archive at all and the linking would fail with a lot of undefined references. Clang on Linux also needs this, but it has no equivalent flag, so enabling LTCG for Clang on static libraries will result in linker error. This commit does not add support for enabling it in configure. It can be enabled on a per-project basis by doing CONFIG += ltcg or by passing -config ltcg to qmake's command-line. Change-Id: I52cf99f1ed9f1701e23a3b457ba3502fd28126ce Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Make the use of -ffunction-sections more generic in QtThiago Macieira2014-05-191-0/+2
| | | | | | | | | | | Move it from bootstrap.pro into qt_module.prf so it will apply to any other bootstrapped libraries, like libQmlDevTools. Variable called "SPLIT_SECTIONS" because -fdata-sections could be added in the future, if it proves to be a benefit. Change-Id: I3fbb004f111620a84e58e9112e9bce3afd95631e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-171-1/+0
|\ | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h Change-Id: I03d8b6e07135056baaa1d97c3c63fbe8b25583d9
| * Remove automated generation of dwarf indexhjk2014-02-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The index is only helpful if the version of GDB to create it uses the same version as the GDB version that consumes it. Outside the "local development" scenario this happens only by conincidence, still we add ~3.6% to the debug library size and face maintenance issues like QTBUG-34950. We also don't see the same performance benefit anymore with recent versions as we did when the feature was added, so it's best to not create the index anymore. People who need it, still can add it manually, or by the 'gdb-add-index' tool that comes with recent versions of GDB, or trust their distributors to set up indexes matching their runtime environment. Task-number: QTBUG-34950 Change-Id: Id4c79fa51fea9622b0891bd9b9b395b948ecb157 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-121-1/+2
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qimage.cpp src/gui/text/qtextengine.cpp src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/printsupport/kernel/qprintengine_win.cpp Change-Id: I09ce991a57f39bc7b1ad6978d0e0d858df0cd444
| * Disable disabling exceptions with ICCThiago Macieira2014-02-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | There's a bug found in ICC 14.0 that causes the compiler to assert when compiling QtDeclarative. Let's leave this here until at least one year after the fix is released. Intel task: DPD200253124 Task-number: QTBUG-36577 Change-Id: I76d4b41da7e60397dac65862a3a6ec024b840744 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Add support for using -isystem in qmakeThiago Macieira2014-01-201-0/+1
|/ | | | | | | | | This commit will make qmake use -isystem automatically for any compilers that declare support for it for any paths that are listed in QMAKE_DEFAULT_INCDIRS. Change-Id: I36fefc6d5bba61671f65669f0ea42704b3c3cf31 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Update the ICC spec on Linux to actually compile stuffThiago Macieira2013-10-301-0/+3
| | | | | | | | | | | I had the -fPIE option in my personalised "linux-icc-optimised" spec, so I never noticed it was missing in the standard one. I have no idea when -rpath-link is necessary. It isn't for me. Task-number: QTBUG-34425 Change-Id: I54b2fb8cda10b9197d81b5630b1d29b8c338d96a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add support for disabling exceptions with ICCThiago Macieira2013-10-171-0/+1
| | | | | | Change-Id: Id1ea1bda14a20e44af1eb9f53bae877a3b9fd2e4 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update ICC warnings disabled by default.Thiago Macieira2013-09-141-1/+1
| | | | | | | Warnings 654 and 411 appear to have disappeared by ICC 14. Change-Id: Ic200f239a4a4377015d13b2f4ae85595ce864ace Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Add QMAKE_NM to the mkspecsThiago Macieira2013-06-101-0/+1
| | | | | | | | | | | We'll use nm to get the listing of symbols in the next commit. The -P option is "portable", which sounds like a good idea. I don't have access to any of the commercial Unix systems, but I do remember them printing a different format than GNU binutils's nm. Change-Id: If6f80624bedaf2b1dabf608e16aa097d9910d739 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix '=' alignment and replace tabs in *.conf (whitespace only change)Axel Waggershauser2013-03-271-62/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace all tabs with proper space characters and consistently align the '=' characters. The default alignment for the '=' of 25 characters has been left as is to get a minimal diff. Lines with the '=' further to the right and those belonging to 'proper code (TM)' have not been touched. The work was mostly done using the following python script (might come in handy again...): import sys, re indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)') for fn in sys.argv[1:]: with open(fn, 'r+') as f: lines = [] nl_count = 0 continuity_indent = None for l in f: m = p.match(l) nl = l if m: n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1)) if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0: n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4 n_spaces = max(1, n_spaces) # we want at least one space before '='/'+=' nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n' continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$' elif continuity_indent: nl = ' '*continuity_indent + l.lstrip() if l[-2] != '\\': # check when to stop the continuation continuity_indent = None elif l.startswith('#'): nl = l.expandtabs(2) if l != nl: nl_count += 1 lines.append(nl) if nl_count > 0: print fn, nl_count, len(lines) f.seek(0) f.writelines(lines) f.truncate() Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Whitespace cleanup: remove trailing whitespaceAxel Waggershauser2013-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Remove all trailing whitespace from the following list of files: *.cpp *.h *.conf *.qdoc *.pro *.pri *.mm *.rc *.pl *.qps *.xpm *.txt *README excluding 3rdparty, test-data and auto generated code. Note A): the only non 3rdparty c++-files that still have trailing whitespace after this change are: * src/corelib/codecs/cp949codetbl_p.h * src/corelib/codecs/qjpunicode.cpp * src/corelib/codecs/qbig5codec.cpp * src/corelib/xml/qxmlstream_p.h * src/tools/qdoc/qmlparser/qqmljsgrammar.cpp * src/tools/uic/ui4.cpp * tests/auto/other/qtokenautomaton/tokenizers/* * tests/benchmarks/corelib/tools/qstring/data.cpp * util/lexgen/tokenizer.cpp Note B): in about 30 files some overlapping 'leading tab' and 'TAB character in non-leading whitespace' issues have been fixed to make the sanity bot happy. Plus some general ws-fixes here and there as asked for during review. Change-Id: Ia713113c34d82442d6ce4d93d8b1cf545075d11d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* purge QMAKE_LIBS_OPENGL_QTOswald Buddenhagen2013-02-131-1/+0
| | | | | | | | | | it differed from QMAKE_LIBS_OPENGL only for the irix/sco/unixware -cc specs for not entirely obvious reasons. as all these specs are obsolete, remove it. Change-Id: I7d50ffa11ff830371ea52c9ebe25e1f1bc56b307 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove the -falign-stack option from ICC's mkspec.Thiago Macieira2012-10-131-1/+1
| | | | | | | | | | | | | | | This option was necessary in early ICC 12 releases because of a difference in interpreting the ABI requirements with GCC. According to ICC devs, GCC changed the ABI on its own to require 16-byte-aligned stacks on i386. It looks like this option has been the default in later ICC 12 releases. At least 12.1 update 5 has it by default. ICC 13 does not have the option anymore but accepts it silently for backwards compatibility. Change-Id: Id8bb4c250718eef2f02dc97bd47a0efd95b272fc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* make qmakespecs announce the compiler familyOswald Buddenhagen2012-09-211-0/+2
| | | | | | | | | | | | on the way to eliminate scoping based on the spec. gcc and msvc go as such into CONFIG, the other ones get the vendor prefixed, as most are mostly unknown and thus likely to clash with users' flags. Change-Id: Ie622f53d90e96dbf05ce7d8c638cd355f04fa20c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* centralize initialization of CONFIG in mkspecsOswald Buddenhagen2012-09-081-1/+1
| | | | | | | | "CONFIG += qt warn_on release link_prl" is in every single spec (though for link_prl there is one genuine exception and two apparent omissions). Change-Id: I72e1e315586af828eefa3b0b70998ab892ec3c1a Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* centralize initialization of QT in specsOswald Buddenhagen2012-09-081-1/+0
| | | | | | | | there is no reason whatsoever to duplicate this so many times, and even less reason to have specs with a deviating default. Change-Id: Ia25836c079580adebc373697b8bd03598f79c69b Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove useless TEMPLATE assignments from specsOswald Buddenhagen2012-09-081-1/+0
| | | | | | | "app" is the built-in default anyway Change-Id: I4f581ee5b81aee08860dbdda5d863943bceafb1b Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* adjust specs to the new target mode handlingOswald Buddenhagen2012-09-081-1/+0
| | | | | | | | | | | | not strictly necessary, but nicer. QMAKE_PLATFORM (and thus CONFIG) now also contains the name of the OS, and its family (if applicable, e.g., bsd). this also adds more feature search paths. Change-Id: I3ab971e6e3b2b32cae53b95e4bc67a86688bc5cb Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* centralize definitions of shell commandsOswald Buddenhagen2012-06-191-10/+0
| | | | | | | there are only two types. everything else is duplication. Change-Id: I87f2bdd3d56b94bb2ecdb60e8861afeb9af3666f Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* purge QMAKE_INCDIR_QT and QMAKE_LIBDIR_QTOswald Buddenhagen2012-06-191-2/+0
| | | | | | | they are equivalent to QT_INSTALL_(HEADERS|LIBS)/get. Change-Id: Ic4b47f3ca7db55785b96f19020a2fa020a8d25bd Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Move the SSE2/AVX/Neon/etc. flags into the compiler mkspecsThiago Macieira2012-06-121-0/+8
| | | | | | | | | | | | | This allows us to have different flags for the compilers for supporting the same feature. For example, the official flag in GCC to support AVX2 is -mavx2, but ICC does not support it (yet), requiring -march=core-avx2 or -xCORE-AVX2. That flag, instead, enables support for all the features that the "Core-AVX2" processor (codename Haswell) will support. And clearly, the MSVC flags are different. Change-Id: I33b6d8617520925e807747180a8dbaafd79b7a9a Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* configure: Auto-detect and enable C++11 support if availableBradley T. Hughes2012-06-051-0/+2
| | | | | | | | | | | | | | | | | Enabling support for C++11 adds CONFIG+=c++11 to the Qt build. Projects using Qt can check for C++11 support using contains(QT_CONFIG, c++11) in their .pr[iof] files. The QMAKE_CXXFLAGS_CXX11 and QMAKE_LFLAGS_CXX11 qmake varibles contain any arguments the compiler needs to enable C++11. CONFIG+=c++11 adds these arguments to the build. Support for clang, g++, and the Intel C++ Compiler for Linux are included in this commit. Change-Id: Id77f86d7ad4d5c740b890446a40b105879a0d327 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Remove all references to X11 session managementDonald Carr2012-06-011-1/+0
| | | | | | | | | There is no session management currently implemented for the xcb QPA backend. Update the build system to reflect this. Change-Id: I3486de5741f1fb7e09330ca142b8235a84d3b91d Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>