summaryrefslogtreecommitdiffstats
path: root/qmake
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge branch 'buildsystem' (second round)Oswald Buddenhagen2012-06-2925-841/+465
|\ | | | | | | | | | | | | | | | | refactoring and cleanup. fixes x-builds between different os families. Conflicts: mkspecs/features/qt.prf Change-Id: I0205e6f07f77c9b015cf055dd87a471883949a91
| * remove abuses of warn_msg()Oswald Buddenhagen2012-06-271-2/+0
| | | | | | | | | | | | | | | | this function is not meant to be used for debug statements Change-Id: I84575e64814e2c9fd2e09c33fc680d0e6648f4ea Reviewed-by: Rolland Dudemaine <rolland@ghs.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
| * remove support for versioning qmake propertiesOswald Buddenhagen2012-06-272-61/+17
| | | | | | | | | | | | | | | | | | the rationale is mostly the same as in 568e714fdf, plus the additional point that the qmake version didn't change for a decade. fallback paths for version 2.01a properties are provided. Change-Id: I3d3f16595eca9eca71c78fda9dbaf53da9f874a9 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * use source root also for finding featuresOswald Buddenhagen2012-06-271-0/+2
| | | | | | | | | | Change-Id: I108914c6d2c6d06414156584aeb3a1afb0f5838d Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * move cachefile_depth calculation out of project evaluatorOswald Buddenhagen2012-06-273-5/+8
| | | | | | | | | | | | | | it has no business there Change-Id: I6d1a4b55b5acacc470cc109a6c69a907abbba312 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * remove possibility to request project recursion from within a pro file againOswald Buddenhagen2012-06-276-25/+11
| | | | | | | | | | | | | | | | | | | | the feature was implemented for the abld/sbs2 generators only, and is of course undocumented. this reverts most of commit e795e61ef93f8080f9938ac49f2fca306644af85. Change-Id: Ibd1726b036ce6c45f8e678ea996218f774f8aed2 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * dispose of Option::host_modeOswald Buddenhagen2012-06-272-21/+4
| | | | | | | | | | | | | | | | | | it was used only for determining the path separator, so do that directly. the -macx option went bye bye, as it is redundant with -unix now. Change-Id: Ib8344c042db56e05af75d263447311d4b43a3bf0 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * dispose of Option::shellPathOswald Buddenhagen2012-06-273-4/+1
| | | | | | | | | | | | | | use isWindowsShell() in the one remaining case. Change-Id: I25eab398ef50df5a7f4ec808279b83ca900e3c58 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * assume windows shell iff dir separator is backslashOswald Buddenhagen2012-06-273-11/+1
| | | | | | | | | | Change-Id: I411a4d6691e18b818ee7d1ced7f126f97af0902f Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * reduce a bit of code dupe while assembling feature search pathOswald Buddenhagen2012-06-271-13/+9
| | | | | | | | | | | | | | | | instead of having a bunch of nested loops, collect into a temporary list and process it at the end. Change-Id: I97e5642f7e13f7c7b69eae00833e61cdf46a02ed Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * purge "dumping all variables" debug loopsOswald Buddenhagen2012-06-273-31/+0
| | | | | | | | | | | | | | | | | | the as-we-go dump is sufficient (and usually necessary to actually find the problem). if only the summary is interesting, the -E option can be used now. Change-Id: I9e34c6db9dcb99b38013c4d0cb80b8cb88ca36b5 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * repurpose deprecated -E switchOswald Buddenhagen2012-06-274-15/+23
| | | | | | | | | | | | | | | | | | instead of dumping the variables as we are going, dump everything at the end. this is potentially useful, as opposed to the previous functionality which was redundant with -d. Change-Id: Icf14703cb93e03f7079dfc0266b219ad9c902133 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * make a bunch of functions constOswald Buddenhagen2012-06-272-7/+9
| | | | | | | | | | | | | | values() and variables() get both const and non-const overloads Change-Id: Idfabea1acc488bf78f24edb831681ee07f0074c4 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * const correctness for variables()Oswald Buddenhagen2012-06-274-7/+7
| | | | | | | | | | Change-Id: Id11453ccbae3ffa32580badadada945d342d727a Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * don't overuse variables()Oswald Buddenhagen2012-06-276-49/+49
| | | | | | | | | | Change-Id: Ib2da88e5e29c0bfecc39a9c06e82a34a4bd0b1e6 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * make magicValues() constOswald Buddenhagen2012-06-272-7/+4
| | | | | | | | | | | | | | the weird debugging feature is not used anyway Change-Id: I07f481a94f2b2ab2a5b61270f0e00183cefd4cd1 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * const correctness for values() callsOswald Buddenhagen2012-06-2711-99/+103
| | | | | | | | | | Change-Id: I1476ae8d3fb7364686398c5650729dee94a8e933 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * don't use backwards compat mapping for generator accessesOswald Buddenhagen2012-06-272-16/+7
| | | | | | | | | | | | | | | | we can rely on only user code needing variable mapping, so apply it only in the evaluator. Change-Id: I6fc58e7bcf24cf0fa8783d5341ab1e7b9f001c88 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * introduce magicValues() functionOswald Buddenhagen2012-06-272-2/+9
| | | | | | | | | | | | | | | | | | the only place where the two remaining magic values need to be referencable is doVariableReplaceExpand(), so make a separate function and use it only in that place. Change-Id: I6e2fcfa3a4f16727d90ace56eb88fc99ef272ffc Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * make $$PWD non-magic on readOswald Buddenhagen2012-06-271-4/+3
| | | | | | | | | | | | | | like the other variables, we can just store it in the hash. Change-Id: I49ad39dca8d498119b27f16ea4bdc44ae698d72e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * set $$_DATE_ only on project startupOswald Buddenhagen2012-06-271-3/+1
| | | | | | | | | | | | | | | | | | this changes the semantics a bit - it will be the datetime of qmake startup rather than the time a particular file is processed. i'd argue that this is insignificant. Change-Id: I75918967bef25038ce54aa81ab03c027384c0268 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * deprecate $$IN_PWDOswald Buddenhagen2012-06-271-2/+3
| | | | | | | | | | | | | | | | it suggests a symmetry to $$OUT_PWD which simply isn't there. the shorter alias $$PWD is much more popular anyway. Change-Id: Iefbfd56f1a3e526f15c9d6cd1bf59778be6f2f8d Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * make project-related variables non-magicOswald Buddenhagen2012-06-271-11/+5
| | | | | | | | | | | | | | | | $$_PRO_FILE_, $$_PRO_FILE_PWD_ and $$OUT_PWD can be cleanly initialized. no need for magic. Change-Id: I2e339d17bae42ecb573c2f82c716f6be15a35b98 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * move initialization of $$TARGET to setupProject()Oswald Buddenhagen2012-06-271-4/+2
| | | | | | | | | | | | | | that's what we have it for Change-Id: Ib734b97d337a82c73b086dfeb2b263171f2a02b7 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * make $$TEMPLATE magic on write instead of on readOswald Buddenhagen2012-06-272-16/+27
| | | | | | | | | | Change-Id: I03a68993dd7d4488f8212132a9d492d135295b9e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * make a bunch of invariant variables non-magicOswald Buddenhagen2012-06-273-127/+112
| | | | | | | | | | | | | | | | instead of resolving them on-demand, just initialize the value hash with them. less magic and faster. Change-Id: I28cb6c21ae6ae60a33734f62acdef0794420ba8f Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * don't make $$TEMPLATE_PREFIX available any moreOswald Buddenhagen2012-06-271-4/+0
| | | | | | | | | | | | | | | | this is a purely internal variable. projects are supposed to query $$TEMPLATE only. Change-Id: I32a3aa7012a4fedcf6e77e2e1302ed978baac700 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * move initialization of numerous variables to spec_pre.prfOswald Buddenhagen2012-06-272-85/+14
| | | | | | | | | | | | | | | | this is cleaner by design and allows removing some hacks. Change-Id: I3270195b5d62caa476ffde7c1e1ef43cec99c565 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * remove QMAKE_EXT_H_MOC and QMAKE_CPP_MOD_MOC from OptionOswald Buddenhagen2012-06-272-10/+0
| | | | | | | | | | | | | | | | these are not actually used inside qmake since ever the code was factored into moc.prf. Change-Id: I545f4857ca3f0b4bf2439703700069ac67ad4ca2 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * purge QMAKE_MOD_SYSTEM_ENV from Option & co.Oswald Buddenhagen2012-06-272-5/+0
| | | | | | | | | | | | | | this is entirely unused Change-Id: Ia0368b1d90f61b64178e28479a2088a19aa418e3 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * don't read QMAKE_DIRLIST_SEP back into Option::dirlist_sepOswald Buddenhagen2012-06-271-2/+0
| | | | | | | | | | | | | | | | it's really only a host setting which is not used any more past the now removed assignment. Change-Id: I62c61c893697eb9a7e7be550311bf152d5a8206e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * don't make prf_ext overridableOswald Buddenhagen2012-06-271-4/+0
| | | | | | | | | | | | | | | | it's entirely pointless Change-Id: I1da3c05a0b4f6ac8cea6ecc64ce3a237957440f5 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * fix specdir()Oswald Buddenhagen2012-06-272-2/+2
| | | | | | | | | | | | | | | | get the actual spec path directly from the project - the specs in Option are not necessarily resolved. Change-Id: Ia2bf2199c5269aa5b5a9d4c38de36171f25d448b Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * use real qmakespec as basis for finding featuresOswald Buddenhagen2012-06-271-4/+3
| | | | | | | | | | | | | | | | | | | | doesn't make much of a difference on unix (as the default specs are just symlinks). on windows, it makes the gross hack used for finding spec-specific wince default_post.prfs unnecessary. Change-Id: Id403dce5be487e1ae22c1f54b8095a6afdd98bc8 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * resolve real qmakespec name right after loading itOswald Buddenhagen2012-06-272-36/+11
| | | | | | | | | | | | | | | | this is cleaner than resolving it on-demand, as it avoids statics (with potential side effects on dynamic spec switching). Change-Id: I2bc15a4c3108376e1b4a01351875fe0c445ee5d5 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * remove support for loading features relative to current directoryOswald Buddenhagen2012-06-271-3/+2
| | | | | | | | | | | | | | | | | | | | | | it's completely counterproductive. just include() the file instead. i don't think anyone knew about this "feature", so just removing it. as a side effect this removes the repeated existence check of already found feature files, as we can use a clean else-if cascade. Change-Id: I5d38d38d0a897f2e8857ac68d5649fd4367941c4 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * revamp handling of qmake target modeOswald Buddenhagen2012-06-279-110/+26
| | | | | | | | | | | | | | | | | | | | | | the project evaluator becomes oblivious of the target mode. the mode is set up in spec_post.prf according to the spec. $$QMAKE_TARGET contains the feature suffixes to search, and is also contained in $$CONFIG. the target_mode variable itself becomes private to the Makefile class. Change-Id: I3c06d9dab536b753343cec6c5c491d3203e50bd8 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * read spec_pre and spec_post featuresOswald Buddenhagen2012-06-271-0/+2
| | | | | | | | | | | | | | | | these are read before the qmakespec and before the cache, resp. this will allow moving some hard-wired logic out of qmake. Change-Id: I6a63050d7798bc30a4add8c009bcd801a29a0deb Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * prune feature search paths which don't actually existOswald Buddenhagen2012-06-271-1/+6
| | | | | | | | | | | | | | | | this should significantly cut down the time wasted looking for files in non-existing directories, in particular on windows. Change-Id: I7ab3523fe8c028e3787ebc78e4543ab04f53448e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
| * eliminate some use of base_varsOswald Buddenhagen2012-06-271-14/+16
| | | | | | | | | | | | | | | | | | this limits references to this variable to its setup and explicit cache manipulation. Change-Id: I88dd2418051501abea201f223da7759a15f1c249 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * purge the integrity target modeOswald Buddenhagen2012-06-273-5/+2
| | | | | | | | | | | | | | | | | | | | it wasn't really wired, so the only effect it had was disabling the unix scopes (despite an attempt to override that in the spec, which probably worked before qt 4.6, and will start working again soon). Change-Id: I95daff75b508edaf83a8a06fd327350acd62b124 Reviewed-by: Rolland Dudemaine <rolland@ghs.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * don't let the make spec determine the host mode any moreOswald Buddenhagen2012-06-275-64/+33
| | | | | | | | | | | | | | | | | | | | | | (some of) the generators are (moderately) x-platform, so it makes no sense to nail the host platform to a generator (and thus a spec). overriding the host platform is only a debugging mesasure anyway, so one can use the (now undocumented) -unix/-macx/-win32 options for that. Change-Id: If2a059f1feeb2c726e5838625ede1c7add829985 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * repurpose -unix/-macx/-win32 optionsOswald Buddenhagen2012-06-273-19/+0
| | | | | | | | | | | | | | | | | | | | they have been deprecated long enough, so we can mess with them now. don't make them set the target mode any more; the makespec can do that autoritatively. instead, they can be used to override the host mode for debugging purposes. Change-Id: Ife5fdcf4f1b6b926901a80896ac92b7d821278d1 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* | Clean up the use of QT_NODLLThiago Macieira2012-06-283-3/+3
|/ | | | | | | | | | QT_NODLL is replaced by QT_STATIC, but the latter is implied if QT_BOOTSTRAPPED is already defined. Therefore, simply remove the QT_NODLL definitions. Change-Id: Iac7ec0b494b7a78197c25d59547f45eaf92d7465 Reviewed-by: Mark Brand <mabrand@mabrand.nl> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* clean up specdir()Oswald Buddenhagen2012-06-262-8/+6
| | | | | | | | | the only callers which used non-default arguments are gone now, so remove the arguments entirely. this also enables us to re-enable result caching. Change-Id: I62f76e17e531a4eeafddb9b29716ca0a0eb3dbea Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix -spec/-xspec argument re-assemblyOswald Buddenhagen2012-06-262-2/+10
| | | | | | | | | | the specs in Option are now only fixifiable absolute paths if an actual path was passed on the command line - otherwise these are just names, and we should pass them on verbatim. Change-Id: I5b3535dadf2d6b2b3116331e6636f6e363a5361f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix somewhat common edge case in $$shadowed()Oswald Buddenhagen2012-06-262-4/+7
| | | | | | | | | | | | if source and build dir are direct children of the common root and we are shadowing the top-level source dir, there is of course no trailing slash to match. Change-Id: I8a34a6a72d16cb21d77d056e037235af9b32a008 Reviewed-by: Davide Pesavento <davidepesa@gmail.com> Reviewed-by: Andreas Hartmetz <ahartmetz@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix return type of isActiveConfig("host_build")Simon Hausmann2012-06-241-1/+1
| | | | | | | | The return type of isActiveConfig is a boolean, so return that when host_build is queried. Change-Id: I6d1420b49b09e51442c4b2d482e2f19b165081d8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fixed Wince Makefile environmentBjoern Breitmeyer2012-06-197-6/+258
| | | | | | | | | Integrated the checksdk tool into qmake and made the makefiles selfcontained, so configure make, is now enough to build qt for wince Change-Id: I29076702eca2ec23d4d06bb3d5c5cef9d4f95161 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* revamp automatic makefile generation for sub-projectsOswald Buddenhagen2012-06-192-33/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | instead of making the "real" targets depend on the makefiles, add conditional makefile generation to the targets themselves. this causes makefile generation to follow the recursion order determined by the project, which is important when dealing with prl and module pri files. a side effect of this is that qmake and make calls are interleaved now, which is entirely different from a 'qmake -r' run. on the downside, calling make with multiple targets which operate on the same subprojects without prior makefile generation will make a mess, as the qmake calls will be racing. this should be no problem, as qmake does not generate recursive targets where this would be useful - at least by default. it is not sufficient to just order the creation of the makefiles non-recursively (e.g., by using gnu-specific order-only-prerequisites), as an interrupted and subsequently resumed build would happily skip the nested makefiles. workable alternative approaches would be walking the entire tree in a pre-pass to ensure makefile presence (which is incredibly slow) or creating additional stamp files only after recursing and having the makefiles depend on them (which is ugly). Task-number: QTBUG-23376 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Change-Id: I88d3e7610215677d362026de316513d3bea04b06