summaryrefslogtreecommitdiffstats
path: root/qmake/library
Commit message (Collapse)AuthorAgeFilesLines
* fix warning in qmakevfs without PROEVALUATOR_FULLOswald Buddenhagen2016-09-291-0/+1
| | | | | | | amends 57ca8d2698. Change-Id: Ibf56c15ab46b9dfa856dc0af7ae2e8c84caa3063 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* report cumulativity of $$system() and evaluator error output as wellOswald Buddenhagen2016-09-292-2/+4
| | | | | | | | | | | | | so far, we "downgraded" only explicit error() output, but other errors may happen as well while doing semi-exact evaluation of .prf files - at least hypothetically. amends 08d0cb6f8e. Change-Id: I32819a569dbed2dbdb37c5c23bf4a5a18d3c64ea Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> (cherry picked from qttools/ea1a5c3534f089c0e704808a0fb029eda8f753b4) Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* terminate when command called by system() got SIGINT or SIGQUITOswald Buddenhagen2016-07-211-3/+10
| | | | | | | these are the two signals unhelpfully suppressed by system(2). Change-Id: I5e5df9f6d136601f0f36a8d645f90a1cab9995ad Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* fix raw data leak in $$absolute_path()Oswald Buddenhagen2016-07-131-1/+5
| | | | | | | | | when the file name is empty, the path will be returned verbatim. this must be considered when constructing the return value. Task-number: QTBUG-54550 Change-Id: Ie108ed52275e66a154ef63bd6f7193f55b3e0454 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* fix calculations of worst-case size requirements for token bufferOswald Buddenhagen2016-07-131-6/+9
| | | | | | Change-Id: I3aa4c736acec44f95a0a33c7baae9276568f684f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* fix custom functions inheriting other functions' argumentsOswald Buddenhagen2016-07-131-17/+39
| | | | | | | | Task-number: QTBUG-41830 Change-Id: Iba3eee4975a1ee671b7190e52c0efc9a18147c62 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* make error() propagate from requires() and REQUIRES=Oswald Buddenhagen2016-07-133-6/+12
| | | | | | | | that can make sense if a function which determines the availability of a dependency fails to do so for unexpected reasons. Change-Id: If6cd113df25aee66830c120a2fab067c822a4543 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* make error() propagate from custom replace functionsOswald Buddenhagen2016-07-132-51/+73
| | | | | | | it didn't, which is rather unexpected. Change-Id: I8cdb7b1490a8c2207809812b93cc65fbe23a1b98 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* fix error() not propagating through if()Oswald Buddenhagen2016-07-133-7/+8
| | | | | | | | if() would simply "downgrade" a fatal error to a false condition, which is certainly not expected. Change-Id: Ie9c54f2bddf588856498bf795007b341b7c9363a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* nuke dead expandVariableReferences() overload prototypeOswald Buddenhagen2016-06-301-1/+0
| | | | | Change-Id: I0c6fceac0b984e4613932b8507a632dd83d0e79b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qmake: Fix missing newlines in generated vcxproj filesMat Sutcliffe2016-06-162-2/+9
| | | | | | | | | | | | | | A bug in the Windows C Runtime causes text mode pipes to drop newlines sometimes. This bug was hidden because of another bug in rcc which caused newlines to be redundantly duplicated. When the latter bug was fixed (commit 53d5811b) the former bug was exposed, causing invalid vcxproj files to be generated. The Windows bug is described here: https://connect.microsoft.com/VisualStudio/feedback/details/1902345 The workaround is to avoid text mode, and do the conversion of "\r\n" to "\n" ourselves (which we were already doing anyway). Change-Id: I792599a4cd7822f109fa921f02207fb1b144b1d1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* qmake: fix UB in QMakeParser::putHashStr()Marc Mutz2016-03-101-1/+2
| | | | | | | | | | | Found by UBSan: qmake/library/qmakeparser.cpp:278:33: runtime error: null pointer passed as argument 2, which is declared to never be null Guard the call. Change-Id: I99341ab439a511f366dae9344ddcc8727c33b9b6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QMake: replace QStringLiteral with QLatin1StringAnton Kudryavtsev2016-01-211-1/+1
| | | | | | | ... in string comparisons. It's more efficient. Change-Id: I5d54ab7777a0838455eaaac671e735eb37bfe243 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* add enablers for printing project errors in cumulative modeOswald Buddenhagen2015-12-213-5/+12
| | | | | | | | | | this doesn't actually do anything in qmake. Change-Id: Ia14953a5a9dc31af56ad6c338017dd5b85bb4494 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> (cherry picked from qttools/08d0cb6f8e90a818bf6d3bec7a6d00f16419b8c0) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* make CONFIG feature evaluation failure non-fatal in cumulative modeOswald Buddenhagen2015-12-211-1/+1
| | | | | | | | | | | | while we evaluate the features themselves in precise mode (which is the reason why they can error out), we do not want them to terminate cumulative project evaluation. Change-Id: I70f3e1bcb2ca04a70c74ff484749ca92c1cf6372 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> (cherry picked from qttools/90ee4094161b427c32581bca2f5286edb4fffdb1) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Add missing includes.Friedemann Kleint2015-12-211-1/+2
| | | | | | | | | | | | | After 90e7cc172a7521396bb2d49720ee4ceb9a9390b3, QStringList no longer includes QDataStream. This also reverts commit c1be0fbe7d17b67c330c0c90eb9ba8a0536c2121, which did the same in a worse way. Change-Id: Ib10622b0da3b3450d29fc65dc5356fde75444a8f Reviewed-by: Olivier Goffart <ogoffart@woboq.com> (cherry picked from qttools/376501ae5a86859821c0e89b2e8fbc9906d11e07) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* make write_file() capable of making files (not) executableOswald Buddenhagen2015-12-214-13/+35
| | | | | Change-Id: I9ca96bc3408160261781697a3471c1f446c86c3a Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Use QFileInfo::exist(f) instead of QFileInfo(f).exists() if possiblehjk2015-10-271-1/+1
| | | | | | | | | | Faster. Change-Id: I91aa67462e11ff3258600d7f158de79942d0dc81 Reviewed-by: Marc Reilly <marc.reilly@gmail.com> Reviewed-by: Christian Stenger <christian.stenger@digia.com> (cherry picked from qtcreator/a439483d704113286370e7e93e0e6bc16199d8ab) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QMakeGlobals::expandEnvVars: Make saneDaniel Teske2015-10-271-24/+18
| | | | | | | | | | | Use indexOf() to match individual characters, which is a lot faster than QRegExp. As a side effect, don't try to expand what we just inserted. Change-Id: I964fbd92055f2f2649e7d8ed5739cf1fc7cae927 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com> (cherry picked from qtcreator/2cc17a61eb6d0fee80fd388fcc5be03a59e4f2b5) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Remove Qt version checks.Christian Kandeler2015-10-271-4/+0
| | | | | | | | | | Qt 5.3 is the minimum requirement these days. Remove all fallback code from sources and project files. Change-Id: If6188a471197acadda4d6baee71804ba1a8026c6 Reviewed-by: Eike Ziller <eike.ziller@digia.com> (cherry picked from qtcreator/847f10e9ccc8c3541782a790e04c85c6b4c701da) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Use Qt 5's QStringList::join(QChar)hjk2015-10-271-4/+4
| | | | | | | | | Less typing and less cycles than join(QString) where appropriate Change-Id: I6ebc0e17e4d7fd9845864dd95b7de4ba4dad6906 Reviewed-by: Eike Ziller <eike.ziller@digia.com> (cherry picked from qtcreator/6431ab2c799553623ec3fe6a79f1e85484558dd6) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* consider qt resource paths absoluteOswald Buddenhagen2015-10-271-0/+4
| | | | | | | | | | | this fixes an assertion failure with qt4 mingw specs when PATH contains a "." element. Task-number: QTCREATORBUG-12528 Change-Id: I2b6b7e02cf38881d40bd78bb0d705f7d58d0736c Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> (cherry picked from qtcreator/d0428a05220ed0550dd84cdb8299a1fb37b0fe72) Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* avoid that a bad qmakespec path crashes the evaluatorOswald Buddenhagen2015-10-271-4/+10
| | | | | | | | | | | | assigning a relative path to QMAKESPEC or QMAKESPEC_ORIGINAL (in the qt4 windows legacy code) would lead to an assert further down the line. just ignore such attempts silently. Task-number: QTCREATORBUG-8477 Change-Id: Ie53d0ef004c743284b85de4e89f112e0161ff4b7 Reviewed-by: Daniel Teske <daniel.teske@digia.com> (cherry picked from qtcreator/e017a1dc8b2030e509d6198315e9f6a9869667e7) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* add ProFile::tokPtrEnd()Daniel Teske2015-10-271-0/+1
| | | | | | | | | just syncing up with qtcreator. Change-Id: I2bda6961f6f1164bdc58acd78fa3d2221977f0cf Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> (cherry picked from qtcreator/765ad6c3d28813d4baa0aeafd03076ba76557d3d) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* fix raw data leak in $$sprintf()Oswald Buddenhagen2015-10-271-1/+1
| | | | | | | | | | it could be only triggered by abusing the function (no expansion actually done), and nobody is using this to start with, but still ... Change-Id: I3d4a23ae4d1eea07955572d8213094e0dc218f6d Reviewed-by: Daniel Teske <daniel.teske@digia.com> (cherry picked from qtcreator/cdc2a0f72334268684e0407e9b04b3188e00d4bf) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* micro-optimization: use ProStringList::join(QChar) overloadOswald Buddenhagen2015-10-271-1/+1
| | | | | | | Change-Id: I25c6205df78da7fbee0ad1b04476f528f376b7a6 Reviewed-by: Daniel Teske <daniel.teske@digia.com> (cherry picked from qtcreator/701a82d3a2185702c09dfecb361853fc18947807) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmakeParser: Do not leak temporaries into cache of filesTobias Hunger2015-10-271-1/+3
| | | | | | | | | | | | | | This prevents an access to free'd memory when opening qtcreator.pro. Looks like qml2puppet.pro gets added to that cache in QMakeVfs::writeFile with part of the including pro-file's filename in it. That part gets cleaned when that containing ProFile goes out of scope, leaving a key in QMakeVfs::m_files free'd but accessible. Change-Id: I80b43d2fbb66c214647497ea97e6e3a587e274d6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> (cherry picked from qtcreator/336c3159617cdb3edd35021b5fb312d4d43f9a84) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* ProParser: Plug raw data leakDaniel Teske2015-10-271-1/+1
| | | | | | | | | | | QProcessEnvironment caches keys, so we must not pass it QStrings created with fromRawData() Task-number: QTCREATORBUG-9142 Change-Id: I29fade02f3bc4110fafb1b04d44f2e653951a2ae Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> (cherry picked from qtcreator/99f15f1706868c4b2f84bc4164451bd69b3b8188) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* don't complain about missing include()s during cumulative evaluationOswald Buddenhagen2015-10-271-0/+2
| | | | | | | | | it produces simply too many false positives. Change-Id: I3dfa109866450babe5c16f84665ad22024d99e42 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> (cherry picked from qttools/08bae158320f6d73bf44fcf43f45f51a01334544) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* execute some loops even in cumulative modeOswald Buddenhagen2015-10-271-7/+12
| | | | | | | | | | | | | | | | | we execute foreach loops now. this is (mostly) safe nowadays, because a previous change added precautions against exponential value list growth, so it's unlikely that two nested loops would keep the cpu busy for a day as before. we continue to exclude forever loops and loops with excessive integer counts. Task-number: QTBUG-8550 Change-Id: Iaa116086986cc7fd5023834753f791dd205102e5 Reviewed-by: Daniel Teske <daniel.teske@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> (cherry picked from qttools/dd4d594c787a62fa8aa12695c5d115c71b59bacd) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmakeProject: Fix crash on updating sourcesDaniel Teske2015-10-271-1/+24
| | | | | | | | | | | | | | ProFileCacheManager::discardFile(s) may remove an entry from the ProfileCache only when it is unused (which is the case iff ent->locker is zero). Change-Id: I9df2079087af6bd0d35dd121db6222e8a6ec9389 Task-number: QTCREATORBUG-14730 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> (cherry picked from qtcreator/dedcd25924743e494055c1e0195aeef0f3983a1d) (cherry picked from qtcreator/b335b2a083e456e2b44b1e9454a0f4cd41e2a397) (cherry picked from qtcreator/a027cbcd7051c634a51b6029dcb8a5b4bfe8b046) Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* qmake: mark some types movableMarc Mutz2015-07-081-0/+1
| | | | | | | They are already held in QVector. Change-Id: Ib1266956c860ecd4671501ab12ab932a8ce9b7d6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into devLiang Qi2015-07-011-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.cpp src/corelib/global/qglobal.h src/corelib/global/qsysinfo.h src/corelib/global/qsystemdetection.h src/corelib/kernel/qobjectdefs.h src/plugins/plugins.pro tests/auto/widgets/itemviews/qlistview/qlistview.pro Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
| * Replace MAC OS X with OS XNico Vertriest2015-06-301-1/+1
| | | | | | | | | | | | Task-number: QTBUG-46374 Change-Id: I7bc633ab551740bd328a24b0ccae1d534af47138 Reviewed-by: Martin Smith <martin.smith@digia.com>
* | Merge remote-tracking branch 'origin/5.5' into devSimon Hausmann2015-06-036-36/+54
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qnamespace.qdoc src/corelib/io/qwindowspipereader.cpp src/corelib/io/qwindowspipereader_p.h src/corelib/statemachine/qstatemachine.cpp src/corelib/statemachine/qstatemachine_p.h src/plugins/platforms/xcb/qxcbconnection.h tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp tests/auto/tools/qmake/tst_qmake.cpp tests/manual/touch/main.cpp Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
| * add qmake evaluator testOswald Buddenhagen2015-05-201-0/+1
| | | | | | | | | | Change-Id: I31b95daede5edef245dd1ba447f2937a0db34232 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * move get{,Hash}Str from QMakeEvaluator to ProFileOswald Buddenhagen2015-05-204-28/+32
| | | | | | | | | | | | | | this makes it possible to use these functions without an evaluator. Change-Id: I23e4ec141b427f4c3c8b647305532be179058c07 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * remove bogus parens from error messagesOswald Buddenhagen2015-05-201-2/+2
| | | | | | | | | | Change-Id: I2683a4fb19a7251dc537e3265db3ba28079eb4b8 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * trim whitespace from windows error messagesOswald Buddenhagen2015-05-201-1/+1
| | | | | | | | | | | | | | the messages contain a trailing CRLF, which is not helpful. Change-Id: I4a27115a191dc416a62e28a41f2a9c5893bdc64b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * remove trailing dots from some error messagesOswald Buddenhagen2015-05-201-3/+3
| | | | | | | | | | | | | | | | the i/o functions are not very consistent about having the dot already in the message. the windows api does, and qt passes this on. Change-Id: I2d1a213965e15478985d6eff205689ea44aa2a03 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * make defined() error message tell about "var" typeOswald Buddenhagen2015-05-201-1/+1
| | | | | | | | | | Change-Id: I21d994ebaee2db0d9b114812a8f89bb680ca311e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * make infinite loop protection work even without an iterator variableOswald Buddenhagen2015-05-201-2/+2
| | | | | | | | | | | | | | ... (which is the usual case). Change-Id: I464b6b284f963df45c7340ed079d540b528136f0 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * fix quote nesting in split_value_list()Oswald Buddenhagen2015-05-201-1/+2
| | | | | | | | | | | | | | a single quote must not disrupt a double quoted string and vice-versa. Change-Id: Ibb277bc1c930a7dbe9199ca572507ababbcfae4c Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * add autotest for ProStringOswald Buddenhagen2015-05-201-0/+12
| | | | | | | | | | | | | | also adds documentation, which is kind of a sanity test. ehm. Change-Id: I6b520e8b505a2bfbb1e376fa72be0f140227a3a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | deprecate DEPLOYMENT variableJoerg Bornemann2015-06-021-1/+2
|/ | | | | | | | | | | | | | Deprecate the qmake variable DEPLOYMENT that was used for installing files on remote devices for Windows RT and Windows CE Visual Studio projects. Use INSTALLS for both nmake and Visual Studio projects. [ChangeLog][core][qmake] Deprecated the qmake variable DEPLOYMENT in favor of INSTALLS. Task-number: QTBUG-21854 Change-Id: Ia9d2c69feb7d87b0b9dc69ff7c0a68be35a57acd Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* add autotest for qmake parserOswald Buddenhagen2015-02-253-0/+259
| | | | | Change-Id: Ib3dcb6c1aaac20ca6a3bc0dc564e16ec7bd152db Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
* catch missing closing braces outside any scope as wellOswald Buddenhagen2015-02-251-1/+1
| | | | | | | | it doesn't make a whole lot of sense, but it's possible to create braced blocks which have no semantic meaning. Change-Id: Id55dfdee1aa3fade507cbd1eb34bdffcd7eb6bff Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* don't make an even number of bangs almost entirely invisibleOswald Buddenhagen2015-02-252-10/+9
| | | | | | | | otherwise we'd silently accept this nonsensical code: !!defineTest(foo) {} Change-Id: I66b59c8a89852c6451ce8d7269a3dc66a53e3b1f Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* be more strict about bogus operatorsOswald Buddenhagen2015-02-252-6/+59
| | | | | | | | we now warn about the pointless ones, and error out in cases that already were semantically bogus. Change-Id: Ifd80014af0fc53e3cc42561c4270d1dca234568f Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* make some messages less ambiguousOswald Buddenhagen2015-02-251-3/+3
| | | | | Change-Id: I6032fdc1c1e6b1fb852da09e47990de03966fa3c Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>