summaryrefslogtreecommitdiffstats
path: root/qmake/library
Commit message (Collapse)AuthorAgeFilesLines
* update m_featureRoots less aggressivelyOswald Buddenhagen2013-07-191-1/+2
| | | | | | | | | | | | | it's not necessary to immediately re-calculate the roots after assigning QMAKE_PLATFORM - it's sufficient to do it on-demand, so merely invalidate them. this avoids that we re-calculate them multiple times without ever using them in between while processing specs with distributed platform assignments. Change-Id: If508594764811b96a577fc81c5ded34ab0453148 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> (cherry picked from qtcreator/28df27d924bb407791a76de8159c9ffa6efde283) Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* cache results of feature searchOswald Buddenhagen2013-07-192-24/+62
| | | | | | | | | | | | | looking up the same files in the same locations over and over again is a rather significant waste. in particular, looking up the CONFIG flags that don't correspond with features has a measurable impact on qt creator's project loading time. Task-number: QTCREATORBUG-9154 Change-Id: Ibae3d8b7797e706a6416a7d45c77734ab1281b51 Reviewed-by: Daniel Teske <daniel.teske@digia.com> (cherry picked from qtcreator/fa27cd79e05aed4ebd16d5648480cc7d48fefd43) Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* minor optimization: don't concatenate strings needlesslyOswald Buddenhagen2013-07-193-1/+8
| | | | | | | Change-Id: Iddec1a818ff9f3ad8b12491100883e433e4b8246 Reviewed-by: Daniel Teske <daniel.teske@digia.com> (cherry picked from qtcreator/12652c20711fd29dcba62b8d5ba71c077d8bd06c) Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* don't unnecessarily use QFileInfo::filePath()Oswald Buddenhagen2013-07-191-3/+3
| | | | | | | | | just directly use the filename we constructed it from. Change-Id: Ia428a2cb4b192fea6bde62dfbf35361bcfc4b21e Reviewed-by: Daniel Teske <daniel.teske@digia.com> (cherry picked from qtcreator/571234786a3ff7e8e3a9220f12d22a9f74f7a53c) Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Merge branch 'stable' into devSergio Ahumada2013-07-112-6/+10
|\ | | | | | | | | | | | | | | | | | | Conflicts: qmake/generators/mac/pbuilder_pbx.cpp src/corelib/json/qjsonwriter.cpp src/corelib/kernel/qeventdispatcher_blackberry.cpp src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
| * don't crash if builddir is suffix of sourcedir (or vice-versa)Oswald Buddenhagen2013-07-041-1/+2
| | | | | | | | | | | | Task-number: QTBUG-32145 Change-Id: I97a6e2ebd51350cbf39c86efa5c26a376c49da95 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * make split_value_list() even less sane againOswald Buddenhagen2013-07-031-5/+8
| | | | | | | | | | | | | | | | | | | | | | contrary to what one may expect, it's actually *not* supposed to remove the meta-characters it interprets. luckily, this function is not used much any more ... Task-number: QTBUG-31877 Change-Id: I2b60f9b173140da78db2b07b596cc2e5f6e6d555 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-272-4/+5
|\| | | | | | | | | | | | | | | Conflicts: configure mkspecs/features/create_cmake.prf Change-Id: I94aea83b83833395d5db399209e0e51b92ef23b5
| * Merge "Merge remote-tracking branch 'origin/release' into stable" into ↵Frederik Gladhorn2013-06-252-3/+4
| |\ | | | | | | | | | refs/staging/stable
| | * make Makefiles not depend on .qmake.superOswald Buddenhagen2013-06-152-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this avoids that an empty rebuild after a complete build re-runs qmake everywhere again. according to 1f83f0cf2a this is the behavior i originally intended, but somehow it got lost when switching to the new interpreter. Change-Id: Id5158d7e272fdee4f4a041fb7c828295a0a86684 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * | Fix incorrect uname usage.Chris Stylianou2013-06-211-1/+1
| |/ | | | | | | | | | | | | | | | | The POSIX function uname() can return any non-negative value for success. - Example: Solaris 10 returns 1 on success. See: http://pubs.opengroup.org/onlinepubs/009695399/functions/uname.html Change-Id: Ic3d51f94a31d8b562b28a2d09df3d31b04c77dc8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | don't copy mkspecs to build directoryOswald Buddenhagen2013-06-121-0/+2
| | | | | | | | | | | | | | instead, teach qmake to use the mkspecs dir from the source dir as well. Change-Id: I9edac11f8997fcb0594d0a67419d4733dd4ed86b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | introduce /src qmake property variantsOswald Buddenhagen2013-06-121-19/+32
| | | | | | | | | | | | | | | | this is for shadow builds during build time, where the respective files are expected in the source dir. Change-Id: I18dcfbdef99e1562a51dacac333642cae8105ebd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | remove pointless string conversionOswald Buddenhagen2013-06-121-2/+1
| | | | | | | | | | Change-Id: I1640083007ed0c428dfb8ab5ce8b68a7d7e2a749 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | make .qmake.{super,cache,conf} find "anchored" featuresOswald Buddenhagen2013-06-121-0/+2
| | | | | | | | | | | | | | | | | | these files function as "anchors" for mkspecs/ and features/ directories used by projects which load these files. ironically, these files didn't see these feature files themselves. Change-Id: I590855eb4a9d2c72b9abfcaa431d2f85a719c6e2 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | find features/ under mkspecs/ of source & build rootOswald Buddenhagen2013-06-121-2/+6
| | | | | | | | | | | | | | | | | | | | we were finding features/ directly in the source & build root, and we were finding features/ under mkspecs/ from $QMAKEPATH and other mkspecs locations, but we omitted the "transitive hull". this was counterintuitive. Change-Id: I9823e6606467c98f264c81385250da92311f51ca Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | add missing ifdeferyOswald Buddenhagen2013-06-121-0/+4
| | | | | | | | | | | | | | | | sync up implementation with qtcreator. Change-Id: I6a1578818512fa3b0773faf276a1d56881eb06d7 (cherry picked from qttools/582cbddc6ba1b74a7e4e07e0b5c23d47de6838cb) Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | fetch all properties from qmakeOswald Buddenhagen2013-06-121-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sync up implementation with lupdate & creator. no actual effect on qmake. don't filter out ^QMAKE_.*: - QMAKE_MKSPECS is not printed any more, so needs no filtering - QMAKE_VERSION can be simply used now, as we are now rather close to the real qmake - QMAKE_SPEC and QMAKE_XSPEC need to be fetched - this fixes the default spec resolution Change-Id: Ifcfa8b5b9e2bbf5d995940e1bb7f55e7d67aed3e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> (cherry picked from qttools/0037bef09ca77c5ae4d20bd09294ba1d57537e09)
* | make stubs for dangerous/useless qmake functions in limited modeOswald Buddenhagen2013-06-121-8/+20
|/ | | | | | | | | | sync up implementation with lupdate & creator. no actual effect on qmake. Change-Id: I1bdeb759e895e4200f09332dadf8a6cef348182f Reviewed-by: Daniel Teske <daniel.teske@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> (cherry picked from qttools/94ab2efb2d155d3c1ca7b91c1daf443a149bcf1f)
* update size calculations for assignment statementsOswald Buddenhagen2013-05-202-4/+5
| | | | | | | | | this was forgotten when the value lists were extended by a size hint. Change-Id: I6f9b55ed671224a9b8735c8d937f94aac4a73a42 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> (cherry picked from qtcreator/f24c9865306624c2fc150d4bd262a5c4d5a3689a) Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* QMakeEvaluator: Set pro file as source for internal variablesOrgad Shaneh2013-05-201-4/+5
| | | | | | | | | | Task-number: QTCREATORBUG-7006 Change-Id: I3f599f92d03b6f9fdf65b12cf4090e28cc497fbd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> (cherry picked from qtcreator/6e3af2bf2e2833e0ecbc9b366af8e06abd7ecf96) Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix warningOrgad Shaneh2013-05-201-1/+1
| | | | | | | | | | | Warnings came up using MinGW 4.4: * qmakebuiltins.cpp: 'QString windowsErrorCode()' defined but not used [...] Change-Id: I80827f7f740ff380f13cef96d6b43baaa7e179cb (cherry picked from qtcreator/0e13cf3faffc7463ae2bf535dfdb008202112cc4) Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Qt4Project: Do a build_pass evaluationDaniel Teske2013-05-202-12/+2
| | | | | | | | | | | | Some projects set TARGET or DESTDIR only in the build_pass Task-number: QTCREATORBUG-4273 Change-Id: I3673dd93b37b10102a0c1f1ce053e1aef8aaf53f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com> (cherry picked from qtcreator/95169eb8e39c6f43b7e74fbb18d4db19a38b0124) Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix warning in ProStringList_joinJoerg Bornemann2013-05-071-1/+1
| | | | | | | | Fix C4267 MSVC warning. Make sepSize an int, because this function is never called with a size_t. Change-Id: I2b834fe7c1408e34d55d9f137231e2f5816f3f1d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge remote-tracking branch 'gerrit/release' into stableSamuel Rødal2013-03-211-3/+3
|\ | | | | | | | | | | | | | | | | | | | | | | 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
| * clean paths of found files in prepareProject()Oswald Buddenhagen2013-03-121-3/+3
| | | | | | | | | | | | | | | | any of the directories may be the root, which would lead to double slashes in the constructed filenames. Change-Id: I053e167a19b795b40e780fc29db356c7f24d286a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | don't send output of $$join() and $$sprintf() through split_value_list()Oswald Buddenhagen2013-03-161-3/+2
| | | | | | | | | | | | | | | | | | in the case of sprintf it's surprising, in the case of join it's anti-thetical. Change-Id: I4eb7e56d31ac6ed68adf852f1a19b33554d38eb4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | make split_value_list() a bit less sane againOswald Buddenhagen2013-03-131-2/+7
| | | | | | | | | | | | | | | | | | let the backslash escape only quotes (and itself), after all - $$list() (one of the main users of this function) is commonly used with (windows) path lists, so letting it escape anything would make a royal mess. Change-Id: I2dae2e4508903e62c190c1497da68d53978118e7 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | make split_value_list() saneOswald Buddenhagen2013-03-121-31/+33
| | | | | | | | | | | | | | | | | | don't count parentheses, don't nest quotes, don't create empty elements, let backslash uniformly escape. in short, behave like a sane parser. Change-Id: I29252fbe14fd6d28217450ec41cf8acfb2e30681 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | permit returning from filesOswald Buddenhagen2013-03-121-12/+17
| | | | | | | | | | | | | | | | | | this allows skipping an entire feature file if a condition is not fulfilled, without putting the whole body inside a conditional. Change-Id: I84fe9c94dda58c794fb52c3f163b40563b0db30a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | remove pointless initialization of qmakespecOswald Buddenhagen2013-03-121-1/+0
| | | | | | | | | | | | | | we have proper fallback paths further down the line. Change-Id: I3648cc985d21bbec4c2c24e179830db4467af210 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2013-02-181-3/+3
|\| | | | | | | refs/staging/dev
| * remove automatic splitting from $$() expansionsOswald Buddenhagen2013-02-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | $$(FOO) would automatically split the contents of the environment variable at whitespace (and interpret quoting inside it). the way to prevent the splitting (but not the quote interpretation) would be using "$$(FOO)". this behavior is entirely unexpected and thus an incredibly effective source of quoting problems - according to a grep over the whole qt sources, there isn't a single case where things were done right. in qt creator, well over half the cases are wrong. also, the "feature" seems entirely pointless: nobody uses spaces as separators in environment variables. consequently, simply remove it, even in a patch release. i'm postulating that nobody will complain. Change-Id: I9ed3df1b0d1ef602acd78ceb118611d294561da6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Update feature paths on assignment to QMAKE_PLATFORMTor Arne Vestbø2013-02-182-1/+4
|/ | | | | | | | | | | Instead of after parsing the makespecs, were we assumed QMAKE_PLATFORM had been set by the makespec and did an explicit update. Allows loading platform specific features from within a makespec after updating QMAKE_PLATFORM. Change-Id: I0eb3b7fb88ce48b00a384850c5d87223c06234d7 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* QMakeParser: save one ByteArray constructionhjk2013-02-061-1/+1
| | | | | | Change-Id: I2845fdefb8b32de227f08017e0e3ad98923d1c87 Reviewed-by: hjk <hjk121@nokiamail.com> (cherry picked from qtcreator/52be02d1cbbf69d4f82c517c7b633ed3d13b1007)
* Remove braces for single lines of conditionsOrgad Shaneh2013-02-063-22/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | #!/usr/bin/env ruby Dir.glob('**/*.cpp') { |file| # skip ast (excluding paste, astpath, and canv'ast'imer) next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i s = File.read(file) next if s.include?('qlalr') orig = s.dup s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m| res = $& if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces res else res.gsub!('} else', 'else') res.gsub!(/\n +} *\n/m, "\n") res.gsub(/ *{$/, '') end } s.gsub!(/ *$/, '') File.open(file, 'wb').write(s) if s != orig } Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc Reviewed-by: hjk <qthjk@ovi.com> (cherry picked from qtcreator/29a93998df8405e8799ad23934a56cd99fb36403) Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* support alternative and multiple suffixes in $$resolve_depends()Oswald Buddenhagen2013-02-042-6/+11
| | | | | | | this is undeniably a new feature, but it's needed for a bugfix. Change-Id: I951a3128eb580404ee0c7e3cdcb4d6170e899f70 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* don't flush qmake command line twiceOswald Buddenhagen2013-02-011-0/+2
| | | | | | | | | otherwise variable assignments (including -config options) from $QMAKEFLAGS are lost. Change-Id: I818e9372d2b0ff44333dc3eb8fc3420f84ab01c5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-1813-13/+13
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* qmake:Add a case sensitivity flag to ProString::{starts,ends}With()Debao Zhang2012-12-211-8/+8
| | | | | Change-Id: I457cd8288ae8a0138f7b28321fe87be3308b5215 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* add base parameter to ProString::toInt and ProString::toShortJoerg Bornemann2012-12-171-2/+2
| | | | | Change-Id: I0c8b48e6491486ca829ce24ca2e284294ba0138a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* fix bootstrapped buildOswald Buddenhagen2012-11-291-2/+2
| | | | | | Change-Id: I8c987e8eed555c9c976732e216553d8002ee2b87 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> (cherry picked from qttools/d9dc9d34ec092ddc536a907b4f5009fb8bf01da4)
* fix non-qmake build of the evaluatorOswald Buddenhagen2012-11-281-1/+1
| | | | | | Change-Id: Ibbd00b415318bda928b5e6f9831b214e2657e291 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> (cherry picked from qttools/769fa282ac8a4b98698dada6969452363e0eb415)
* rewrite default spec handlingOswald Buddenhagen2012-11-011-3/+11
| | | | | | | | | | instead of symlinking (on unix) or creating a forwarding spec (on windows), just put the default specs into (the bootstrapped) QLibraryInfo. Change-Id: I595500ef7399f77cb8ec117c4303bc0a2ffe505f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix qmake's pro file cache to interact correctly with write_fileSimon Hausmann2012-10-253-0/+9
| | | | | | | | | When writing a file with write_file() we have to inform the pro file parser cache to discard the file if it's existant in the cache, to ensure that calling include() after write_file() always works. Change-Id: I7d09269a57de55ca30b0e11dd40770de9f919f64 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-2213-312/+312
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Use QStringList::join(QChar) overload where applicable [qmake]Marc Mutz2012-09-211-2/+2
| | | | | | | | | | This is an automated change performing the following replacements: join\("(.)"\) -> join('\1') join\(QLatin1String\("(.)"\)\) -> join(QLatin1Char('\1')) join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1')) Change-Id: I9c9964703dedfdab6e7bfac80be22bd5570e2e49 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qmake: add ProStringList::join(QChar)Marc Mutz2012-09-212-8/+20
| | | | | | | | | | | Same reasoning as for 68e04c3ac148bcbe71f2deeb7288563f6cdbcab5 applies. Adding the overload was easier than to teach a Perl script to distinguish between QStringList and ProStringList instances... Change-Id: I6de6ecf21fdad135ac213b5c794927a9bc120a92 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* make error() abort the qmake run, not just the current fileOswald Buddenhagen2012-09-213-59/+86
| | | | | | Change-Id: I82fc55680f9ffb227e25acb39c797596225ba89e Reviewed-by: Daniel Teske <daniel.teske@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* resolve only one level of symlinks, and only for the default specsOswald Buddenhagen2012-09-191-1/+6
| | | | | | | | otherwise we end up in the source tree, which is counterproductive. Task-number: QTBUG-26869 Change-Id: Id44a94f827dc285c75b9b243c8ef6478e668e3ff Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>