summaryrefslogtreecommitdiffstats
path: root/qmake/option.cpp
Commit message (Collapse)AuthorAgeFilesLines
* qmake: Expose qmake arguments as QMAKE_ARGSTor Arne Vestbø2013-10-241-2/+1
| | | | | | | | Allows project files or mkspecs to call qmake recursively using system() with the right arguments, which we use to fix the ios default_post.prf. Change-Id: I90d69e2b156bb0f0af1279188b11f81c84c24fb8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge branch 'stable' into devSergio Ahumada2013-09-131-1/+2
|\ | | | | | | | | | | | | | | Conflicts: src/concurrent/qtconcurrentmedian.h src/corelib/itemmodels/qabstractitemmodel.cpp Change-Id: Iac46a90bbb2958cef7670031a4b59c3becd8538a
| * fix finding qmake.exe when called on the command line as ... qmake.exeOswald Buddenhagen2013-09-091-1/+2
| | | | | | | | | | | | Task-number: QTBUG-33333 Change-Id: I026659fc779d1cf2fde46b5bcb4990b151b8c51e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | implement simple VFS to support caching during project parsingOswald Buddenhagen2013-08-071-0/+1
|/ | | | | | | | | | | | sync up with qt creator - for qmake itself, this is just a minor refactoring. Change-Id: I833253f81c3159056fab2ff888f293b36cc2ef56 Reviewed-by: Daniel Teske <daniel.teske@digia.com> (cherry picked from qtcreator/66802ef8bf7989dc025e34bf91d93576189c483c) (cherry picked from qtcreator/69542826fa643a0fed2fc9e717f072c2852dc017) (cherry picked from qtcreator/196424115338fb9a535810704b7d814d318b0462) Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* make sure qmake finds itself in CWD on windowsOswald Buddenhagen2013-04-261-0/+1
| | | | | | | | and consequently that it finds qt.conf. Task-number: QTBUG-30583 Change-Id: I48441477e941d9609270d6e5e1b405127c0c0aca Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* remove unused member Option::application_argv0Joerg Bornemann2013-03-011-3/+0
| | | | | | | Use QMakeGlobals::qmake_abslocation instead. Change-Id: I1d0f39549b477ede674730937d879c492407fb28 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* don't flush qmake command line twiceOswald Buddenhagen2013-02-011-6/+7
| | | | | | | | | 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-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* qmake: Change copyright information from Nokia to DigiaSergio Ahumada2012-11-261-1/+1
| | | | | | | Task-number: QTBUG-28156 Change-Id: If54615a465504b4124891fb393185eb324372874 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Robert Loehning <robert.loehning@digia.com>
* Tools: add QLibraryInfo to the bootstrapped library.Pierre Rossi2012-10-081-1/+1
| | | | | | | For future use by qdoc. Change-Id: Id9079a6fa581ff16810df9a8f2bb94314ee11ca9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | 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>
* replace qmake_version() with a simple string literalOswald Buddenhagen2012-09-131-16/+1
| | | | | | Change-Id: I12e715aab23e01267e8a1434a3a965276c1a6182 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* port qmake to qt creator's qmake language evaluatorOswald Buddenhagen2012-09-111-163/+132
| | | | | | | | | | | | | | | | | | | | | this is a monster commit which does the following things: - import the evaluator as-is from qt creator into qmake/library/ - integrate it into qmake's makefiles - overwrite proitems.h with actual special types - remove the parts of Option which are redundant with QMakeGlobals - make QMakeProperty a singleton owned by Option::globals. the dynamic handling so far made no sense. - make QMakeProject a subclass of QMakeEvaluator, with relatively few extensions the changes to existing qmake code outside project.* and option.* are minor. implementing the changes gradually would mean changing a lot of code which will be just replaced in the next commit, so i'm not wasting my time on it. Change-Id: I9746650423b8c5b3fbd8c3979a73228982a46195 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* introduce qmake variable abstractionsOswald Buddenhagen2012-09-071-15/+15
| | | | | | | | this is preparation for adapting to a new evaluator. Change-Id: I6fc59f5525735754a00afa6629fbfe257e84db97 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove pretenses of supporting projects on stdinOswald Buddenhagen2012-09-051-2/+1
| | | | | | | | | | this may have worked a decade ago, but now it only produces funny Makefiles (and needs hacking main.cpp). the feature doesn't seem *too* important, so just clean it out. Change-Id: I50a60b0e30341f0b523e4a5731c770c9c1013f8b Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Remove automatic drive letter lowercasing from Option::fixString()v5.0.0-beta1Miikka Heikkinen2012-08-281-3/+0
| | | | | | | | | | This enforced lowercasing causes subtle errors, like changing the drive letter case when doing $$files(), which makes it difficult to do any string matching against the result later. Task-number: QTBUG-26985 Change-Id: I4973e3ac3e851e24af944295edf290cc98f02fb6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* revamp preparation of command line for qmake calls in makefilesOswald Buddenhagen2012-08-141-7/+13
| | | | | | | | | | | | | instead of re-assembling a list from the variables, take the original command line minus some explicitly stripped out options. this is way less code and poses no synchronization problem between the two parts. as a "side effect", variables obtained from $QMAKEFLAGS won't multiply with each makefile nesting level, as the generated command line won't replicate data obtained from the environment. Change-Id: I5d1ce0f11efb338f60405529f9818910103b1b0e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* make command line parser use qt containersOswald Buddenhagen2012-08-141-53/+43
| | | | | | | way more legible code Change-Id: I7ba5a66f1f0bc7ae78ba0537ef8e5c780506a149 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* take parsing of qmake mode out of parseCommandLine()Oswald Buddenhagen2012-08-141-26/+24
| | | | | | | | it wouldn't do anything particularly useful when parsing QMAKEFLAGS, so take it out of the common path. Change-Id: I60f1215c4645707e1f99932dd19160e1d1c9d953 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove rather pointless parameter from parseCommandLine()Oswald Buddenhagen2012-08-141-3/+4
| | | | | Change-Id: I97998555c41e8eab2438ac355950abf9dace24a0 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix host vs. makefile directory separator messOswald Buddenhagen2012-07-281-1/+0
| | | | | | | | | | | | | | | | | the system path separator and shell are bound to the host system (system() will use cmd even on mingw with sh.exe in path). the makefiles otoh may depend on what the qmakespec defines. consequently, add $$system_path() and $$system_quote() (for use with system() & $$system()). $$native_path() is renamed to $$shell_path() and should be used with $$shell_quote() to produce command lines in makefiles. $$QMAKE_DIR_SEP needs to be applied to Option::dir_sep right after parsing the spec, so it is available to $$shell_{path,quote}(). Change-Id: If3db4849e7f96068cf03a32348a24f3a72d6292c Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* move cachefile_depth calculation out of project evaluatorOswald Buddenhagen2012-06-271-0/+5
| | | | | | | 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-271-4/+4
| | | | | | | | | | 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-271-19/+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-271-2/+0
| | | | | | | use isWindowsShell() in the one remaining case. Change-Id: I25eab398ef50df5a7f4ec808279b83ca900e3c58 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* repurpose deprecated -E switchOswald Buddenhagen2012-06-271-1/+0
| | | | | | | | | 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>
* don't overuse variables()Oswald Buddenhagen2012-06-271-4/+4
| | | | | Change-Id: Ib2da88e5e29c0bfecc39a9c06e82a34a4bd0b1e6 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* make a bunch of invariant variables non-magicOswald Buddenhagen2012-06-271-0/+8
| | | | | | | | 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>
* move initialization of numerous variables to spec_pre.prfOswald Buddenhagen2012-06-271-73/+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-271-8/+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-271-4/+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>
* revamp handling of qmake target modeOswald Buddenhagen2012-06-271-9/+0
| | | | | | | | | | | 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>
* purge the integrity target modeOswald Buddenhagen2012-06-271-2/+0
| | | | | | | | | | 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-271-16/+15
| | | | | | | | | | | (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-271-10/+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>
* fix somewhat common edge case in $$shadowed()Oswald Buddenhagen2012-06-261-2/+2
| | | | | | | | | | | | 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>
* remove some symbian cruftOswald Buddenhagen2012-06-191-2/+0
| | | | | | | | - Option::mmp_ext - references to dead QMAKE_INTERNAL_ET_PARSED_* variables Change-Id: I863605b23798cbca3f6c8ab5a154fd432f1f4dcc Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove last traces of js supportOswald Buddenhagen2012-06-191-2/+0
| | | | | | | | don't even complain about trying to use js-based feature files. we have been doing that for long enough. Change-Id: Ib58ec204322442c488e8d780989f26b1e32595ed Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* add $$shadowed() functionOswald Buddenhagen2012-06-191-0/+25
| | | | | | | | | return the build directory corresponding to a given source directory. this is the identity function if not shadow-building. if input lies outside the source directory, return empty value. Change-Id: I2d2a6b1112bd19989fe29cfe19a12d39a0d208c1 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* introduce ability to build projects for the host systemOswald Buddenhagen2012-06-191-1/+14
| | | | | | | | | | | | | | | | | when qmake runs into the new option(host_build) command, it will restart the project evaluation with a host spec. the new default host spec is called default-host (gasp!). it is overridden with the pre-exising -spec / -platform option, while the new -xspec / -xplatform option overrides the pre-existing default spec. specifying -spec but not -xspec will set the xspec, too, so the behavior is backwards-compatible. same for the XQMAKESPEC override read from .qmake.cache and the environment variable. the cleaner solution would be adding -hostspec, to be symmetrical with the override semantics, but that would deviate from configure in turn. Change-Id: I4297c873780af16ab7928421b434ce0f1d3820da Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Revert "move .qmake.cache search to Option"Oswald Buddenhagen2012-06-191-58/+0
| | | | | | | | | | | | | | | | We are now moving in the exact opposite direction. This logically reverts commit 059200a44ba7177d0c9ec6bb5e6ee0b7e0c3f017. Some adjustments were necessary to maintain the project root stuff. Conflicts: qmake/main.cpp qmake/option.cpp qmake/option.h qmake/project.cpp Change-Id: Ic14fa571cbbfe9ac159f92493e49741d70a87eff Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Revert "move finding the makespec to Option"Oswald Buddenhagen2012-06-191-46/+0
| | | | | | | | | | | | | | Needed for an upcoming revert. This reverts commit 74a6669fa7c0d6e2cb7d34d56332d620d2a07755. Conflicts: qmake/option.cpp qmake/project.cpp qmake/property.cpp Change-Id: I56088506d27bf1f095f9261c75224f4bee17ec60 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* don't add bogus /mkspecs to QMAKE_MKSPECSOswald Buddenhagen2012-03-061-1/+2
| | | | | | | | the project build root can of course be empty - if there is neither an mkspecs/ nor a .qmake.cache - or no project in the first place (-query). Change-Id: I9595b0b4ad80a9086dcd48c9ae62b3e8bd1b6f2f Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Fix finding specs in the unsupported/ directory.Thomas McGuire2012-03-061-2/+5
| | | | | | | | | The -spec argument was interpreted as a relative directory as soon as it contained a slash. Fix this by checking if the directory exists before attempting to interpret it. Change-Id: Ide8f0418abc719b0be582d2d72642a141f6c6dea Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* de-duplicate feature and mkspec root candidate listsOswald Buddenhagen2012-03-061-0/+1
| | | | | Change-Id: I03f5b5903a133e5386b9ebef640ddbacdf3ebcd4 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Merge remote-tracking branch 'origin/api_changes'Lars Knoll2012-03-041-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: dist/changes-5.0.0 mkspecs/features/qt_module_config.prf qmake/project.cpp qmake/property.cpp Change-Id: I6e4af40743a9aeff8ed18533a48036e332acc296
* | get rid of Option::user_configsOswald Buddenhagen2012-03-021-2/+6
| | | | | | | | | | | | | | | | | | merge them into before_user_vars. they are evaluated right after another anyway. Change-Id: I11859284b363fee01233f6e20989444fef711d0d Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* | clean up build pass project initializationOswald Buddenhagen2012-03-021-1/+0
| | | | | | | | | | | | | | | | | | instead of messing with the Option singleton, add a way to inject extra config values into QMakeProject. Change-Id: Ia347dcc38af2c72913e30ebf5c2b4044f93b4f5f Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>