summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_module_headers.prf
Commit message (Collapse)AuthorAgeFilesLines
* syncqt: fix forwarding injected headers, take ~3Oswald Buddenhagen2018-09-121-2/+2
| | | | | | | | | | | | in non-prefix builds, the forwarding headers always end up in qtbase's build dir, while the injected headers always live in the build dir of the module they belong to. to deal with that, we now record the target path relative to the module root dir instead of relative to the base directory of the forwarding header itself. Fixes: QTBUG-70056 Change-Id: Ic4346148a125b13e2610f6965cdf4f5266ac763e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* make it possible to override the basename of module config filesOswald Buddenhagen2018-08-031-3/+4
| | | | | | | | | | | | | | | | | | | | | | using qt$$MODULE isn't enough if the module is composed of submodules which need the final module's headers, because that would require two modules having the same module .pri file. the first thought to fix this was to just use $$lower($$TARGET), but that breaks for testlib (QtTest). while the config file name isn't public api, it's included by a public header, so changing it is risky. so instead stay with the original pattern, but make it explicitly overrideable. the cherry-pick is needed to support QtWebEngine 5.12 with Qt 5.11, a requirement that was raised too late. Change-Id: I758c46ed403620620d577ae16866ce751271b63e Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 95b0e4c956181e535d635b108adc732d8c91a803) Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* syncqt: fix CamelCase aliases for injected headersOswald Buddenhagen2018-04-251-0/+1
| | | | | | | | | | | don't put them into GENERATED_HEADER_FILES, as they obviously cannot be found in a pre-synced source dir. instead, let the injection code itself add them to INJECTED_HEADER_FILES. Task-number: QTBUG-67813 Change-Id: Id2a7c565b14fcba8aba9d1dd8b1dd39c586d0d91 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* syncqt: don't write INJECTED_*HEADERSOswald Buddenhagen2018-04-251-4/+4
| | | | | | | | these are actually redundant with INJECTIONS. Change-Id: I0a71930401e00d30c9898b4d958de5e89c496d18 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* rework syncqt interaction regarding cross-tree pathsOswald Buddenhagen2018-04-121-3/+16
| | | | | | | | | | | | | | instead of relying on more or less accidental qmake behaviors regarding the base dir for relative paths (esp. if a file does not exist yet), make everything explicit. to that effect, clearly define the base tree (source or build) for every syncqt-generated variable, and write only in-tree relative paths to the variables. on the receiving end, resolve the paths as soon as headers.pri was read. Task-number: QTBUG-67111 Change-Id: I32ae5760fb62ebc650fdb69e46aac786a8141564 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* syncqt: fix injected headers outside qtbase in non-prefix buildsOswald Buddenhagen2018-02-151-1/+2
| | | | | | | | | | | in non-prefix configs, one has to differentiate between the module's own build dir and qtbase's build dir, because the forwarding headers are placed in -outdir under include/, while the actual headers end up in the real build dir under src/. Change-Id: I1d8ac904556b354bd113995316ba11dd6560a70d Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix GCC -Wfloat-conversion warnings (available since GCC 4.9)Thiago Macieira2017-10-291-0/+1
| | | | | | | | | | | This warning used to be part of -Wconversion, but that generates too more noise than we're willing to fix now (like conversion from qint64 to int). The float conversion does trigger for conversion from double to float, as shown in all the QVectorND uses of float, but more importantly, it triggers on passing floats to ints. Change-Id: I69f37f9304f24709a823fffd14e69cfd33f75988 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Compare versions in qmake files with versionAtLeastAlexander Volkov2017-08-021-10/+5
| | | | | Change-Id: Iba5686131d9f3e22e9a4d6da473a61a845b0418e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-05-071-0/+1
|\ | | | | | | | | | | | | | | Conflicts: src/network/access/qnetworkreply.cpp tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp Change-Id: Iadf766269454087e69fb216fc3857d85b0ddfaad
| * Undefine QT_RESTRICTED_CAST_FROM_ASCII for headersclean build stepTor Arne Vestbø2017-04-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | The module might add QT_RESTRICTED_CAST_FROM_ASCII to DEFINES to be able to use string literals under the assumption they are UTF8 without warnings from QT_ASCII_CAST_WARN, but this conflicts with QT_NO_CAST_FROM_ASCII which is added for the headersclean build step. Change-Id: Ic1d7b5415350477d751a6c15219d4f8feb816a3c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-04-201-5/+11
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.h src/corelib/tools/qdatetime.h src/corelib/tools/qstring.h src/corelib/tools/qversionnumber.h src/plugins/platforms/android/qandroidplatformintegration.cpp tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp Change-Id: Iefd92a435e687a76cd593099e40d9a9620a1454d
| * Disable precompiled headers for small modulesThiago Macieira2017-04-201-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | Creating a precompiled header exclusively for a one- or two-file module is wasteful. The time that it takes to build the precompiled source is on the same order as a regular compilation, so enabling precompiled headers for those modules just makes the build slower. Also make it possible to override the precompiled header by just setting PRECOMPILED_HEADER to empty. Change-Id: I0e1a09998253489388abfffd14b5f221288c4826 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Disable MSVC warning 4577 in headerscleanThiago Macieira2017-04-071-0/+5
| | | | | | | | | | | | | | | | | | | | | | This warning is added in MSVC 2015 and is printed when we use noexcept in modules we turned exceptions off. Task-number: QTBUG-59645 Change-Id: Id92f4a61915b49ddaee6fffd14ae3b943ccd2bce Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-03-281-3/+5
|\| | | | | | | | | | | | | | | | | Conflicts: examples/examples.pro tests/auto/corelib/tools/qchar/tst_qchar.cpp tests/auto/other/qaccessibility/accessiblewidgets.h Change-Id: I426696c40ab57d14dc295b8103152cede79f244c
| * Disable -Werror for QNX's compilerThiago Macieira2017-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | The compiler is mostly GCC in disguise, but the libraries are not. Since the toolchain is not open, it's difficult to fix issues in it. Task-number: QTBUG-59671 Task-number: QTBUG-59672 Change-Id: Id92f4a61915b49ddaee6fffd14aea2639153f073 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * fix bootstrapped modules in framework builds, take 2Oswald Buddenhagen2017-03-221-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | the borrowing of headers always happens from "proper" modules which are actually built as frameworks if so requested. that means that even though the borrowing module itself never is a framework, it needs a framework path and include paths that point into frameworks. amends 20c7ab44. Change-Id: Ic582060dd179cc592e9be7792ff02cebdfabd772 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | don't try to timestamp injected qvulkanfunctions.hOswald Buddenhagen2017-03-221-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the target of the injected forwarding header doesn't exist at qmake time, as it is generated by an extra compiler, so the touch() calls in qt_module_headers.prf would fail. the error scenario described in ce942a226 is not applicable to gui/vulkan, as no bootstrapped modules are involved. therefore, we can just suppress the timestamping. Change-Id: I1c9b6fcdf3717069fdbb654e3cb5d73b199192f4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | headersclean: Move it from MSVC 2013 to all MSVC versionsThiago Macieira2017-03-201-1/+1
|/ | | | | | | Our headers ought to be clean in all compiler versions. Change-Id: I4a7dc1fe14154695b968fffd14aba9ff9995c618 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Add -Wfloat-equal to Qt's header clean checkThiago Macieira2017-03-071-1/+1
| | | | | | | Task-number: QTBUG-57649 Change-Id: I15b62e0f9cec482fbb40fffd1490d802c54bf0fe Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add -Wdouble-promotion to headerscleanJesus Fernandez2016-11-301-0/+11
| | | | | | | | | Fixes: warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion] Task-number: QTBUG-57068 Change-Id: I897a341aca83873bc6abd256a82a3b9f09409833 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* don't include injected headers into linker version scriptOswald Buddenhagen2016-10-141-1/+1
| | | | | | | | | | | it makes no sense to version them, as they contain only #defines anyway. it also removes the need to special-case their location in shadow builds with pre-synced headers, which we actually failed to do anyway. Task-number: QTBUG-56286 Change-Id: I4ea717f7be56494cfea0572389bea173d7470b6e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add a QT_REQUIRE_CONFIG(feature) macroLars Knoll2016-09-161-2/+9
| | | | | | | | | | | | | This macro expands into a static_assert and can be used to trigger a compile error if a certain feature is not available when trying to compile some code. This is especially useful to protect against accidental inclusion of headers that implement functionality related to a feature. Change-Id: I456c55b989ce5f35f3af0e13c1886a85c23dfe29 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Modularize the new configure system (infrastructure part)Lars Knoll2016-09-101-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change implements the required infrastructure to modularize the new configuration system. This requires a hierarchy of configuration files, both for handling multiple repositories and for individual modules inside the same repository. When configuring, they all need to get loaded first, as command line processing needs to know about all possible command line options. When the command line has been processed, the individual configuration files need to get processed one after the other and independently from each other. Configure is now automatically invoked when building the a project tree's "root" project; this works with both modular and top-level builds of Qt (the latter with an according change in the super repo). As an immediate consequence, the -skip option moves to the super repo with a different implementation, as configuration is now done after the repo list is determined. The option belongs there anyway. This commit also adds an optional testDir entry to the json file. Like this, we can still have all configure tests in qtbase/config.tests and the configuration file in, e.g., corelib can reference those. The files section can now be left out as long as a 'module' entry is present, specifying the module name. The names of the files to generate can then be deduced from that name. We still need to be able to specify names directly for the global configuration files. qtConfig() now also queries features which are module-specific. As it is sometimes necessary to query the configuration of modules which should not be actually linked (and cannot in the case of subdirs projects), the new variable QT_FOR_CONFIG which allows specifying configuration-only dependencies is introduced. Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Change-Id: Id1b518a3aa34044748b87fb8fac14d79653f6b18 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* fix location of injected headers in shadow buildsOswald Buddenhagen2016-08-301-3/+5
| | | | | | | | | they are build-time generated, so they must go to the build dir irrespective of whether we're using pre-synced headers. Task-number: QTBUG-55585 Change-Id: I5f10b35c40b0ae2ddc5568d70e254b787ac3f914 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Use qtConfig throughout in qtbaseLars Knoll2016-08-191-2/+2
| | | | | | | | | | | Use the new qtConfig macro in all pro/pri files. This required adding some feature entries, and adding {private,public}Feature to every referenced already existing entry. Change-Id: I164214dad1154df6ad84e86d99ed14994ef97cf4 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* sync timestamps also for forwarding headers to generated onesOswald Buddenhagen2016-08-191-0/+2
| | | | | | | | | | | | | | | | | | | | this wasn't possible when these headers were still generated by syncqt, as the targets may have been still missing at that time. however, as we do that now with qmake, forwarding the timestamps is perfectly possible, and is consistent with what syncqt itself does for "regular" headers. the immediate problem this solves: when the early creation of the forwarding headers in qtbase.pro is removed, they get created only when corelib.pro is processed. their timestamps would be after the timestamps of the already built bootstrapped libraries. if now the project files of these libs get re-created, qmake's not conditional-aware dependency scan would add these headers to the libs' deps, thus causing them to be re-built. the re-built tools would in turn cause all mocs and thus all libraries to be re-built. this would be particularly problematic if it happened between 'make' and 'make install' due to another bug ... Change-Id: I8d597f1f925369d93aaf3cc6c02e954eeae003a4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix relative paths in forwarding headers to generated privatesOswald Buddenhagen2016-08-191-1/+2
| | | | | Change-Id: I837407503ef81f1059a7d531d9e57a67059855c8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* make use of silent error() emissionOswald Buddenhagen2016-08-081-3/+3
| | | | | | | | get rid of the entirely superfluous stock "Aborting." messages - the event triggering the exit has already reported the problem. Change-Id: Ib9dfb9e4212f60eceb2ea432cdf56c5a8afe9d65 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-191-0/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp src/network/access/qnetworkaccessmanager.cpp src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.h src/widgets/widgets/qlineedit_p.cpp src/widgets/widgets/qlineedit_p.h src/winmain/winmain.pro tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h tests/auto/testlib/selftests/expected_cmptest.teamcity tests/auto/testlib/selftests/expected_cmptest.txt tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp tools/configure/configureapp.cpp Change-Id: Ib9997b0d0f91946e4081d36c0c6b696c5c983b2a
| * Add -Wzero-as-null-pointer-constant to headerclean checkMarc Mutz2016-05-131-0/+10
| | | | | | | | | | | | | | | | | | Requested by user(s). Change-Id: Id2c7d67a8cd50f4f83f141cff41ba01e21c3a603 Task-number: QTBUG-45291 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-02-241-1/+2
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java src/plugins/platforms/windows/qwindowsfontengine.cpp src/plugins/platforms/windows/qwindowsnativeimage.cpp tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I649b32b260ce0ed2d6a5089021daa0d6a8db85f7
| * unhack qt_install_headers vs. lib_bundleOswald Buddenhagen2016-02-191-1/+2
| | | | | | | | | | | | | | instead of unsetting the flag later on, don't set it in the first place. Change-Id: Id448500b02b5c3e1dc7c332cc178a84c7fd2cfdc Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-211-2/+60
|\| | | | | | | | | | | | | | | | | | | | | 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
| * rework include path construction in the module systemOswald Buddenhagen2016-01-121-2/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the main objective was to fix the bootstrap modules in framework builds. bootstrapped modules which "borrow" headers from "proper" modules can specify this in a clean way now. a side effect of this is that the bootstrap-dbus module now has its own syncqt call. most includepath-related setup from qt_module_pris.prf was moved to qt_module_headers.prf. Change-Id: Ie0d8192cfac1a8cdae0ddd0bc0cd8c3092b1e85b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Add some interesting warning options to the compilationThiago Macieira2015-12-051-1/+2
| | | | | | | | | | | | | | | | | | This should help improve the cleanliness of our source code, including compliance with the C++ standards. They apply to all of our code except examples (they don't load qt_common.prf). Change-Id: Ia0aac2f09e9245339951ffff13c94663c1901766 Reviewed-by: David Faure <david.faure@kdab.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-11-181-5/+9
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qprocess.cpp src/corelib/io/qprocess_unix.cpp src/network/kernel/qnetworkinterface_winrt.cpp tools/configure/configureapp.cpp Change-Id: I47df00a01597d2e63b334b492b3b4221b29f58ea
| * don't create distclean targets in minimal syncqt modeOswald Buddenhagen2015-11-171-3/+6
| | | | | | | | | | | | | | | | the projects which use full mode with the named modules have them. Change-Id: I3b9383d1cc2b43411c25690a5e35e7e84a55aa23 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
| * make a proper header-only module for QtZlibOswald Buddenhagen2015-11-171-2/+3
| | | | | | | | | | | | | | | | | | | | that way other modules can use the headers without hacks. this required making the base directory for paths in headers.pri configurable in syncqt. Change-Id: Id35cfe05bcf4c576d3f2d0d8d09590a5e23d21d3 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | headersclean: s/QT_USE_FAST_CONCATENATION/QT_USE_QSTRINGBUILDERSérgio Martins2015-10-191-1/+1
|/ | | | | | | The former is meaningless nowadays. Change-Id: I27c7eb0e924f3f2e9b73185f1b198909aeb6b031 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* fix distclean targetsOswald Buddenhagen2015-04-231-0/+7
| | | | | | | | | | this makes the distclean targets work throughout qt. the dreaded confclean target is aliased to distclean. Task-number: QTBUG-8202 Task-number: QTBUG-20566 Change-Id: I7ac8e3b5b0110825dc93e4fa885281db91c6cf83 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* disable automatic PCH compilation for headers-only modulesOswald Buddenhagen2015-04-211-1/+1
| | | | | | | | there is neither a point in building a PCH that will never be used, nor does it even work with the aux TEMPLATE. Change-Id: I2fe11f951f81adf5e15066ed60f983003c76b451 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Implement a more direct headersclean checkThiago Macieira2015-04-171-0/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test each include file directly, instead of doing a large #include. This verifies that each header is compilable on its own. One big advantage of doing it via a special compiler in qmake is that we skip pre-compiled headers, which has hidden build errors in the past. This solution is implemented by making syncqt produce a second list of headers. This list is the same as the list of headers in the source code to be installed, minus the headers that declare themselves to be unclean, via the pragma: #pragma qt_sync_skip_header_check This mechanism is applied only for public libraries (skipping QtPlatformSupport, an internal_module). This test is enabled only for -developer-builds of Qt because it increases the compilation time. On QtTest: the library only links to QtCore, but it has two headers that provide inline-only functionality by including QtGui and QtWidgets headers (namely, qtest_gui.h and qtest_widget.h). If those two modules aren't getting compiled due to -no-gui or -no-widgets to configure, we need to remove the respective headers from the list of headers to be checked. If they are being built, then we need to make QtTest's build wait for the headers to be generated and that happens when qmake is first run inside the src/gui and src/widgets directories. Change-Id: I57d64bd697a92367c8464c073a42e4d142a9a15f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* support spaces in build and install dirsOswald Buddenhagen2015-02-171-1/+1
| | | | | | | | spaces in the source dir are not supported for now, as that requires some more profound refactoring of the bootstrap makefiles. Change-Id: Ie0c07a1558b8326f642f2ea144bc1cd85ee761af Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* add support for explicitly declaring the module master headerOswald Buddenhagen2014-10-291-1/+3
| | | | | | | | | | | | when a module delegates to another module (as the activeqt ones do), it doesn't have a master header to be included. we could derive the real master header by doing a transitive dependency resolution and some filtering, but that seems unnecessarily complex. Task-number: QTBUG-41892 Change-Id: Ie7ce51a837ac06e929b204ec734206c11b3ae241 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* use correct quoting style when running syncqt under mingwOswald Buddenhagen2014-09-301-1/+1
| | | | | | | | | | to this end, add a mode to qtPrepareTool() which prepares the primary variable for system() use (instead of use in makefiles). Task-number: QTBUG-41032 Change-Id: If6aa6c206a70ecdbc2ea05bbb3cb470414fb02b1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Disable automatic use of pch for MinGWKai Koehne2014-06-261-1/+6
| | | | | | | | | Revert cb09e1e88944e1ab9b0d0 for MinGW. gcc on Windows reproducably crashes when the pre-compiled header becomes big enough ... Change-Id: Icd5a3dfbe59f5ff5c78832e7b4436d0f1cfa1031 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qmake: Guard module depends with __cplusplusHolger Hans Peter Freyther2014-06-201-0/+2
| | | | | | | | | | | | When qtbase has been compiled with PCH and trying to compile the disassembler in QtDeclarative creating the PCH for "C" is failing due the C++ includes. Guard the includes with __cplusplus to be "usable" on C code. This guard is proposed for the "stable.h" in the qmake precompiledheaders documentation. Change-Id: I7a8fb9e59c666a2e1535d988fd71c5cd67d0587d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Automatically enable precompiled headers for Qt modulesThiago Macieira2014-05-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll use the master depends header for the module as the precompilation header. We could use the master include, but tests show that precompilation benefits taper off for big precompiled headers. The important part is to get the Standard Library headers precompiled. Each module can still override which header to precompile by setting PRECOMPILED_HEADER after load(qt_modules). It can also turn off precompiled headers by setting that to empty or by CONFIG -= precompile_header. Testing a few build times shows the following improvements (GCC 4.8 with -O3 and C++11): QtPrintSupport: 14.7% QtOpenGL: 22.7% QtDBus: 29.5% QtSvg: -2.4% QtXmlPatterns: 26.1% QtQml: 21.6% QtQuick: 25.0% QtMultimedia: 9.0% QtSerialPort: -30.0% QtHelp: 5.6% The numbers also show that precompilation is worse for small modules. Change-Id: I3793fafcedaff5456527cd6b3777ffd162975c36 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* automate handling of generated headers some moreOswald Buddenhagen2014-02-281-0/+14
| | | | | | | | | | | | | | let the syncqt + qt_module_header.prf pair handle generation of forwarding headers. in qtbase this is ineffective to some degree, as the need to create QtCore's forwarding headers early for QtBootstrap requires qtbase.pro already doing the real work, but at least we get the verification that nothing breaks. Other Modules (TM) will need the full functionality. Change-Id: Ifd3dfa05c4c8a91698a365160edb6dabc84e553f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* reshuffle path setupOswald Buddenhagen2013-06-101-3/+3
| | | | | | | | | | | | | rename MODULE_PROFILE_DIR to MODULE_BASE_INDIR. force MODULE_BASE_OUTDIR to be always the shadow of the above. rename MODULE_BASE_DIR to MODULE_SYNCQT_DIR (the former is still recognized for backwards compat with webkit). the idea behind these changes is making the variable names and override possibilities reflect their actual use. Change-Id: Ica4062d7231a0ce13241670e0d0f43e6b1b97160 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>