summaryrefslogtreecommitdiffstats
path: root/qmake/option.h
Commit message (Collapse)AuthorAgeFilesLines
* bump qmake versionOswald Buddenhagen2016-11-151-1/+1
| | | | | | | | there are plenty new functions, let's do this symbolic act. Change-Id: Iaeb88afa5e33cacd81dc0ea26e380a16af06a739 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* qmake: eradicate Q_FOREACH loops [already const]Marc Mutz2016-01-281-1/+1
| | | | | | | | (or trivially marked const) ... by replacing them with C++11 range-for loops. Change-Id: I1522e220a57ecb1c5ee0d4281233b3c3931a2ff8 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Updated license headersJani Heikkinen2016-01-211-17/+12
| | | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I42a473ddc97101492a60b9287d90979d9eb35ae1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* add enablers for printing project errors in cumulative modeOswald Buddenhagen2015-12-211-1/+1
| | | | | | | | | | 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>
* Distinguish between Objective-C and Objective-C++ sourcesTor Arne Vestbø2015-10-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of lumping both Objective-C (.m) and Objective-C++ (.mm) sources into the same pile, passing them on to the same compiler as for C++ (CXX), with the C++ flags (CXXFLAGS), we follow Apple's lead and treat them as variants of the C and C++ languages separately, so that Objective-C sources are built with CC and with CFLAGS, and Objective-C++ sources with CXX, and CXXFLAGS. This lets us remove a lot of duplicated flags and definitions from the QMAKE_OBJECTIVE_CFLAGS variable, which in 99% of the cases just matched the C++ equivalent. The remaining Objective-C/C++ flags are added to CFLAGS/CXXFLAGS, as the compiler will just ignore them when running in C/C++ mode. This matches Xcode, which also doesn't have a separate build setting for Objective-C/C++ flags. The Makefile qmake generator has been rewritten to support Objective-C/C++ fully, by not assuming that we're just iterating over the C and C++ extensions when dealing with compilation rules, precompiled headers, etc. There's some duplicated logic in this code, as inherent by qmake's already duplicated code paths, but this can be cleaned up when C++11 support is mandatory and we can use lambda functions. Task-number: QTBUG-36575 Change-Id: I4f06576d5f49e939333a2e03d965da54119e5e31 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | 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>
* avoid direct use of QLibraryInfo as much as possibleOswald Buddenhagen2015-02-021-1/+0
| | | | | Change-Id: Ic1f5f5167181b15bc67bf4c6a1001532d0058b45 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* qmake: Expose qmake arguments as QMAKE_ARGSTor Arne Vestbø2013-10-241-1/+0
| | | | | | | | 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>
* implement simple VFS to support caching during project parsingOswald Buddenhagen2013-08-071-0/+2
| | | | | | | | | | | | 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>
* remove unused member Option::application_argv0Joerg Bornemann2013-03-011-1/+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-1/+1
| | | | | | | | | 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>
* 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>
* bump qmake versionOswald Buddenhagen2012-09-131-1/+1
| | | | | | | | the world has awaited this moment for a long time. very patiently. Change-Id: Iba8697e7eebb5cdd43caadb64cd89126de395e66 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* replace qmake_version() with a simple string literalOswald Buddenhagen2012-09-131-4/+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-12/+23
| | | | | | | | | | | | | | | | | | | | | 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>
* revamp preparation of command line for qmake calls in makefilesOswald Buddenhagen2012-08-141-2/+1
| | | | | | | | | | | | | 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-1/+1
| | | | | | | way more legible code Change-Id: I7ba5a66f1f0bc7ae78ba0537ef8e5c780506a149 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove rather pointless parameter from parseCommandLine()Oswald Buddenhagen2012-08-141-1/+1
| | | | | Change-Id: I97998555c41e8eab2438ac355950abf9dace24a0 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove possibility to request project recursion from within a pro file againOswald Buddenhagen2012-06-271-2/+1
| | | | | | | | | | 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-2/+0
| | | | | | | | | 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-1/+0
| | | | | | | use isWindowsShell() in the one remaining case. Change-Id: I25eab398ef50df5a7f4ec808279b83ca900e3c58 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* remove QMAKE_EXT_H_MOC and QMAKE_CPP_MOD_MOC from OptionOswald Buddenhagen2012-06-271-2/+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-1/+0
| | | | | | | this is entirely unused Change-Id: Ia0368b1d90f61b64178e28479a2088a19aa418e3 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* revamp handling of qmake target modeOswald Buddenhagen2012-06-271-2/+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/+1
| | | | | | | | | | 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-1/+0
| | | | | | | | | | | (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-1/+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>
* remove some symbian cruftOswald Buddenhagen2012-06-191-1/+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-1/+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>
* make splitPathList() return an empty list for an empty stringOswald Buddenhagen2012-06-191-1/+1
| | | | | | | this makes the user code a bit cleaner Change-Id: I3713c73c5c19cf69341be65480917eda0b967b77 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* add $$shadowed() functionOswald Buddenhagen2012-06-191-0/+3
| | | | | | | | | 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-0/+2
| | | | | | | | | | | | | | | | | 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-3/+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-2/+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>
* Merge remote-tracking branch 'origin/api_changes'Lars Knoll2012-03-041-22/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: dist/changes-5.0.0 mkspecs/features/qt_module_config.prf qmake/project.cpp qmake/property.cpp Change-Id: I6e4af40743a9aeff8ed18533a48036e332acc296
| * don't duplicate QLibraryInfo declarationOswald Buddenhagen2012-02-291-22/+1
| | | | | | | | | | | | | | | | there is no reason for doing that. there is even reason for *not* doing it (the enums running out of sync). Change-Id: Ieb7d015ca497a6675cc85da4c2e0af0c1533dd7a Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* | get rid of Option::user_configsOswald Buddenhagen2012-03-021-1/+1
| | | | | | | | | | | | | | | | | | 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/+1
| | | | | | | | | | | | | | | | | | 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>
* | move finding the makespec to OptionOswald Buddenhagen2012-03-021-0/+2
| | | | | | | | | | | | | | | | | | this is a one-time operation which depends only on the invocation, so this new home is much more appropriate. Change-Id: I07c66d95a9ae01a664cec17564995311fb78ec9b Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* | look for mkspecs in the project root, not next to every projectOswald Buddenhagen2012-02-291-1/+2
|/ | | | | | | | | | | | | | | | | | qmake would look for mkspecs/ in the directory containing the current project file. this makes completely no sense with recursive projects: a) nobody would make per-project specs and b) specs meant to be global would not be found. consequently, we look for a project root when starting qmake and use only that directory. if .qmake.cache is found/set, we assume that to be the project root. otherwise, we search for mkspecs/ the same way we search for the cache - just to up until we find one or hit the root. if we are shadow-building, search the build dir as well. Change-Id: Ie66b189a40c21203d956e681cbef44a89f98cd17 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* move .qmake.cache search to OptionOswald Buddenhagen2012-02-281-0/+2
| | | | | | | | this is a one-time operation which depends only on the invocation, so this new home is much more appropriate. Change-Id: I11ef30a8227afed06e58e64e65809dba25e81567 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* qmake: Normalize paths instead of converting to native separatorsOrgad Shaneh2012-01-191-1/+11
| | | | | | | Task-number: QTBUG-22738 Change-Id: I40163a883d84beff79f52bff141d61dfe921c129 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Added build system support for installing tests.Rohan McGovern2011-11-231-1/+2
| | | | | | | | | | | | | Tests will install under $$[QT_INSTALL_TESTS]. TESTDATA may be used to install additional testdata required by the test. The default install rule may be disabled by CONFIG+=no_testcase_installs. Change-Id: I204de60c8e844775906ffd016ca50bffbb414142 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* qmake: remove symbian supportJoerg Bornemann2011-11-071-1/+1
| | | | | Change-Id: I1db834500921681676a6f46e7750bdd81bf0093d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Remove references to QT_INSTALL_DEMOS & DemosPath.Casper van Donderen2011-07-061-1/+0
| | | | | | | | | | | | | | | | The distinction between 'examples' and 'demos' is completely blurred at this point. We've decided, with the SDK people, to scrap the existing terminology in favor of the word 'example' only -- distinguishing between code snippets, walkthroughs, "demonstrations" can be done via keywords or some other method. Removing QT_INSTALL_DEMOS from all .pro files in Qt is still in progress. Change-Id: I86fc0e40d54baa54c5641fc6acbd8b67e4ad2789 Reviewed-on: http://codereview.qt.nokia.com/1034 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>