summaryrefslogtreecommitdiffstats
path: root/bin/syncqt.pl
Commit message (Collapse)AuthorAgeFilesLines
* don't include injected headers into linker version scriptOswald Buddenhagen2016-10-141-0/+5
| | | | | | | | | | | 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>
* exclude injected headers from headersclean checkOswald Buddenhagen2016-10-141-3/+5
| | | | | | | it makes no sense to check them, as they contain only #defines anyway. Change-Id: I8b36139ee19471de0654c5eb3af262d0389a72f7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-291-4/+4
|\ | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/uikit/xcodebuild.mk tests/auto/other/lancelot/tst_lancelot.cpp tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp Change-Id: Ia0ae2de86094120281abd445138877c2cc3e882c
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-09-281-4/+4
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/widgets/dialogs/qcolordialog.cpp src/widgets/dialogs/qfiledialog.cpp tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp Change-Id: I34bc8a990f8f526889a95a5c7099ef557b9681ad
| | * syncqt.pl: fix a few misguided regexes to match .h file namesEdward Welbourne2016-09-281-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To match correctly (only) .h files, a regex needs to end in \.h$ Some of them missed the \, one missed the $. (The last also had a legitimate .* before its misunescaped .) One pair matched _p.h and _pch.h, which could be combined. Change-Id: I7539a28eb7017cd0f1b36c72e05108e03a68a952 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| | * syncqt.pl: also allow digits in upper-case macro namesEdward Welbourne2016-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The check for Q_... macros used a regex that didn't allow digits; it thus failed to match Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(). Change-Id: I3f9339349aa21e2fea04a7f53d9d8e0903e4c65b Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Add a QT_REQUIRE_CONFIG(feature) macroLars Knoll2016-09-161-11/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | minor optimization in stale file removal codeOswald Buddenhagen2016-09-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | don't bother opening headers.pri files, as they won't match anyway. Change-Id: I4d923266dabf1c9684fba4086f55bc24d76d23c5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | automatically exclude generated headers from syncqt checksOswald Buddenhagen2016-08-181-0/+4
| | | | | | | | | | | | | | | Change-Id: I349a132745165f8873eda351e86bf15c90156aaf Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | make it possible to exclude private headers from syncqt include checkOswald Buddenhagen2016-08-181-1/+1
|/ / | | | | | | | | | | | | the limitation to public headers seemed pretty arbitrary. Change-Id: I0f2290fe09c8a6a70d056ec250b902be7049790e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.6.0' into 5.7v5.7.0-alpha1Oswald Buddenhagen2016-03-071-0/+1
|\| | | | | | | Change-Id: Idcda6d52266f557ce4a819b6669f6797473a48a2
| * Fix syncqt.pl not respecting #pragma qt_no_master_include in files with ↵Simon Hausmann2016-02-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | Windows line endings We need to do the same chop trick that we do further down the file. Change-Id: If4f832f375a11473e66adfcfa76a3b4504b3d406 Task-number: QTBUG-51324 Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Add Intel copyright to files that Intel has had non-trivial contributionThiago Macieira2016-01-211-0/+1
| | | | | | | | | | | | | | | | | | I wrote a script to help find the files, but I reviewed the contributions manually to be sure I wasn't claiming copyright for search & replace, adding Q_DECL_NOTHROW or adding "We mean it" headers. Change-Id: I7a9e11d7b64a4cc78e24ffff142b506368fc8842 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-151-14/+20
|/ | | | | | | | | | | 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>
* syncqt.pl: say "ERROR" when it's an errorThiago Macieira2015-12-081-2/+2
| | | | | Change-Id: I0f2ce894387048f78465ffff141cdae9ea760175 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* syncqt: print errors and warnings to stderrThiago Macieira2015-12-051-6/+6
| | | | | | Change-Id: Ib056b47dde3341ef9a52ffff13ef5f6b8d21aeab Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* syncqt: fix false positives in header checkJoerg Bornemann2015-12-021-1/+4
| | | | | | | | | | Restore the condition for deciding what a private header is from fe383e04 to not check *_pch.h files and third party headers. This amends commit eddb938c. Change-Id: Idc55269478e7f2c98fb7debceef8a53c3cb5c657 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Remove duplicated header iteration codeJoerg Bornemann2015-11-271-37/+3
| | | | | | | | | | | Do not iterate separately over all header files. This removes duplicated header iteration code which already was out of sync. As a side-effect, we do run the header check only on header files that are considered part of the module, if moduleheaders is set in sync.profile. Change-Id: Iec4c8febe9128139d2f377a1da8ce08c24110a77 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Factor header check out into a separate functionJoerg Bornemann2015-11-271-65/+70
| | | | | | | | Another step towards the removal of the duplicated loop over header files. Change-Id: I542782627d8742a515a42034264e4569a2355823 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Simplify tests whether to run header checksJoerg Bornemann2015-11-271-6/+6
| | | | | | | | Turn lists into hashes and check for existence of an element using key lookup. This leads to simpler testing code and is potentially faster. Change-Id: Ibbf4f03ec64d6c295cc5e1664dfa73cd0ce8c272 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* make a proper header-only module for QtZlibOswald Buddenhagen2015-11-171-0/+1
| | | | | | | | | | 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>
* syncqt: complain if a public header includes a private oneThiago Macieira2015-10-151-0/+1
| | | | | | | | | We should even cause syncqt to exit, but that would cause developers trying to test something to be unable to. So leave it just with an "ERROR" message. That is hopefully enough. Change-Id: Ib056b47dde3341ef9a52ffff13ef5f8588b62b99 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Move the official Qt version from qglobal.h to .qmake.confThiago Macieira2015-10-141-7/+1
| | | | | | | | | It's easier to parse than qglobal.h. The objective is actually to have macros with parts of the version number, so the major or minor numbers could be used in other preprocessor macros. Change-Id: I42e7ef1a481840699a8dffff1404eda1dd5c308d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* syncqt: scan private headers for the "We mean it" commentThiago Macieira2015-10-021-26/+38
| | | | | Change-Id: Ib056b47dde3341ef9a52ffff13ef5f50c72d753d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Implement a more direct headersclean checkThiago Macieira2015-04-171-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fixed license headersJani Heikkinen2015-02-171-1/+1
| | | | | Change-Id: Ibebe1318d1c2de97601aa07269705c87737083ee Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* support spaces in build and install dirsOswald Buddenhagen2015-02-171-0/+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>
* Update copyright headersJani Heikkinen2015-02-111-22/+14
| | | | | | | | | | | | | | | | | | 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>
* Use the new warning enabling/disabling macros in qtbaseThiago Macieira2014-12-031-0/+1
| | | | | | Change-Id: I91ff06644e8047c2ca483f9768b46c1372eb6171 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* syncqt: Fix regexp capturing class names of partial specialisationOlivier Goffart2014-07-081-1/+1
| | | | | | | | | | | | Example with this code: "template <class Key> struct QHashNode<Key, QHashDummyValue> {" The previous regexp would take "QHashNode<Key," as some keyword, and "QHashDummyValue>" as the class name. By forbidding '<' in the keyword, we avoid such mistake Change-Id: I5d5077b9e5e764e91899bcaef137d99214ea5d63 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* automate handling of generated headers some moreOswald Buddenhagen2014-02-281-4/+19
| | | | | | | | | | | | | | 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>
* de-duplicate header install source calculationOswald Buddenhagen2014-02-281-3/+1
| | | | | Change-Id: I7c26d70fdfceac6d3c562e704cc725fad80c4f59 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* remove duplicated nested conditionOswald Buddenhagen2014-02-281-14/+11
| | | | | Change-Id: I433773dbf21a7a7625d4f763b3cebe75c746aa1f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* un-pluralize codeOswald Buddenhagen2014-02-281-8/+5
| | | | | | | | since ever we've thrown out the phonon hack, each header is synced to only one location (CamelCase headers notwithstanding). Change-Id: Idfef33db9410908aefe309bc7a3edeae5fc5a671 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* merge %explicitheaders into %classnamesOswald Buddenhagen2014-02-281-18/+17
| | | | | | | | | | | | no need to have two mechanisms for the same thing. the values of %classnames can be comma-separated lists now, so one header can have multiple classes assigned. conversely, if an extracted class name reverse-maps to a different file name, it is omitted. Change-Id: Ia0a35d64764b6376f33b77bbfe59e1df70a3cf1a Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* remove vestiges of uic class map codeOswald Buddenhagen2014-02-281-2/+0
| | | | | | | amends ad52be1ac. Change-Id: I2bfb10908217708c4f046d0d315dadd1b626da12 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Merge "Merge remote-tracking branch 'origin/release' into stable" into ↵Frederik Gladhorn2013-06-151-3/+8
|\ | | | | | | refs/staging/stable
| * don't process ANGLE and zlib headers like real qt modulesOswald Buddenhagen2013-06-101-3/+8
| | | | | | | | | | | | | | | | | | | | we run syncqt on them only to get normal forwarding headers and the headers.pri file. the module master include header and the module version header are useless, and scanning for qt class names just wastes time. Change-Id: I58e8d1eb36cea5c31cbd46ce673438316d1963dc Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | don't touch deprecated headers unless they actually changeOswald Buddenhagen2013-06-121-22/+25
| | | | | | | | | | Change-Id: Iabeec90c2a6549cf92b3b8369a41764a576fd0aa Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | purge dead uic class map code.Oswald Buddenhagen2013-06-121-21/+0
| | | | | | | | | | Change-Id: I9b67924a66c847cd4cf2ce9f2996017ae7eb61a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | remove unused symlinkFile() functionOswald Buddenhagen2013-06-121-30/+0
|/ | | | | Change-Id: Ie235fe65020ed7c4870d9c8784a181bf880b9e28 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* move module master header generation back to syncqtOswald Buddenhagen2013-06-031-0/+42
| | | | | | | | | | 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>
* let configure create the forwarding qconfig.h againOswald Buddenhagen2013-06-031-9/+1
| | | | | | | | | | | | this avoids that syncqt needs to forward to a yet unexisting file (which will have a yet unknown location, when syncqt is run at packaging time already). the %inject_headers syncqt config variable remains, so it can be told not to purge "foreign" files. Change-Id: I127ff6e0b7d5702fb0acaee9a5b7940b482d3608 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* move module version header generation back to syncqtOswald Buddenhagen2013-06-031-0/+13
| | | | | | | | | | | 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>
* factor out writeFile() functionOswald Buddenhagen2013-06-031-17/+27
| | | | | Change-Id: I8e3e1665d7628c3210d000c46dfffa9f1af71009 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* get rid of syncqt wrapper scriptsOswald Buddenhagen2013-05-131-0/+1209
instead, rename it to syncqt.pl and rely on qtPrepareTool()'s new ability to correctly invoke it as a perl script even under windows. the wrappers themselves have been trivial at this point, so there is no added value in keeping them, either. Change-Id: I77cf65edbcfaa48ed1900defe940d4eb4b82d5b9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>