summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_module_headers.prf
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* run syncqt only for builds from gitOswald Buddenhagen2013-06-031-2/+6
| | | | | | | | | | | | | | | | | the logic in the configures was even trying to express that, only that nowadays we always ship syncqt, so the tests were kinda pointless. this frees us from the perl dependency for non-developer builds of packaged modules (except for webkit, which needs almost every scripting language on earth anyway). obviously, this requires that the packaging scripts run syncqt in the source dir before tarring up the sources. note that for repositories other than qtbase, the -version argument needs to be passed to syncqt. Task-number: QTBUG-29465 Change-Id: Ic929ab17a5de4b30fbf48b3aa9bfa3b4d2ef37d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* move module master header generation back to syncqtOswald Buddenhagen2013-06-031-25/+0
| | | | | | | | | | now that we split out the part that depends on the project file, we can do it cleanly here. this way we can generate these headers at pre-build time already. and for git builds, perl is probably faster than qmake at this task. Change-Id: I343255c6de22329471a3ae2c2aac9ebeb160a501 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* split out dependencies from module master headerOswald Buddenhagen2013-06-031-5/+14
| | | | | | | | this will allow us the create the dependency list in a different way than the rest of the master header. Change-Id: Ib083fbbf6194cd9a161d669f860aaf32fd96d9d4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* move module version header generation back to syncqtOswald Buddenhagen2013-06-031-29/+0
| | | | | | | | | | | there is no particular reason for it being done by qmake. avoids that the logic is distributed over two source files, and allows us to generate these headers at pre-build time already, including not forwarding to a yet unexisting file (which would have a yet unknown location). Change-Id: I9c78ab425cf6f01d076c86fd1ee602626f231487 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Merge remote-tracking branch 'gerrit/release' into stableSamuel Rødal2013-03-211-2/+1
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/features/qt_module_headers.prf mkspecs/features/qt_tool.prf src/angle/angle.pro src/tools/bootstrap/bootstrap.pro tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp Change-Id: Ide5759fe419a50f1c944211a48f7c66f662684e0
| * pass module version to syncqtOswald Buddenhagen2013-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this is cleaner than having it parse qmake project files. the only remaining built-in version extraction is the fallback to qglobal.h needed for bootstrapping. as a "side effect", this fixes the build of modules with mismatched versions centralized in .qmake.conf, as this was simply not handled so far. the -mkspecsdir syncqt option goes away, as there is no use case for it any more. Task-number: QTBUG-29838 Change-Id: I6912a38f0e93a26bc267a9e3d738506fd3ad431b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | consolidate syncqt invocationsOswald Buddenhagen2013-03-131-3/+12
|/ | | | | | Change-Id: Ic28ea95201501b05c4a62366d1f70fa120161927 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* mark a bunch of features as internalOswald Buddenhagen2012-12-121-0/+11
| | | | | Change-Id: I5ad28827ff317985414e859263af85ceec31207c Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* expose a little less of the build host's file system structureOswald Buddenhagen2012-11-301-2/+5
| | | | | Change-Id: I6fc675b9aeae0744c3308cd20ffd8c115c271c58 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* make it possible to name include dir differently from library nameOswald Buddenhagen2012-11-301-5/+5
| | | | | | | ActiveQt needs that Change-Id: Ib9f69d19e8042c1ab0f211eebb9237bc2fb77aa3 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* kill $$mod_component_base & $$mod_qmake_baseOswald Buddenhagen2012-10-291-3/+3
| | | | | | | | | | use $$MODULE_BASE_OUTDIR & $$MODULE_QMAKE_OUTDIR directly. this is a no-op, except that now module pris will be built in qtbase for all modules when building without -prefix - which is only consistent with all other artifacts. Change-Id: I2965b2c7a15aa9e82ba6017f5f4c0daa14b6e6fe Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* centralize module directory calculationOswald Buddenhagen2012-10-291-5/+1
| | | | | Change-Id: I5db529676b3287013008f28623a541fee1cde6a0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Rename the syncqt -qtdir to -mkspecsdirThiago Macieira2012-10-191-1/+1
| | | | | | | | | It's actually looking for the mkspecs (so it can read qconfig.pri to get the Qt version), so give it exactly what it wants. Change-Id: I2957b2d93a8837b8492d313209d45ff3ec01704c Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* move syncqt call to qt_module_headers.prfOswald Buddenhagen2012-09-211-0/+9
| | | | | | | | | | | | | for one, the syncqt invocation is qt module magic and thus simply does not belong into the generic default_pre file. second, this way the forwarding header generation is now linked to the rest of the build magic for a particular module, which is way less confusing for the unsuspecting developer. Change-Id: Idc8e420d3faf173d7fff4a41e6e1c59af15c3023 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* put the include/ of all modules into qtbase when doing non-prefix buildOswald Buddenhagen2012-07-181-2/+8
| | | | | | | | | all other build artifacts go into qtbase's build directory anyway. this asymmetry was confusing and causes cmake users some grief. Change-Id: I4d7f7b2318f6c5300eb00360664785cb2c8217b7 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* move generation of module master headers to qt_module_headersOswald Buddenhagen2012-06-191-0/+28
| | | | | | | | | this has the advantage that the %mastercontent assignments in sync.profile are not necessary any more. as it happens, most modules got them wrong anyway. Change-Id: Ibdf689be408f18e1d90c44ef4ecacd7c24b1f1c9 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* move creation of module version header to qt_module_headersOswald Buddenhagen2012-06-191-0/+20
| | | | | Change-Id: I650b495ec1789eb03b31d796f9f475ba01aab2d3 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* automatically add the version header to HEADERSOswald Buddenhagen2012-06-191-0/+9
| | | | | Change-Id: I7c2e1d852ebdbc5cca7a3a31ab2b4c9ab9faffd9 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* factor out qt_module_headers.prfOswald Buddenhagen2012-06-191-0/+4
this doesn't make too much sense as such, but the file will grow. Change-Id: Iceaecdc24f83b3dafb40c8d2f1b6cddafa2d70a1 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>