Commit Graph

48 Commits

Author SHA1 Message Date
Oswald Buddenhagen
a0515b3b55 read .qmake.super files
follow suit with qmake ...

Change-Id: I8e7f3e3379f6109c8211a69cb397c75c19d880ab
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-09 21:13:46 +02:00
Oswald Buddenhagen
5ba6019385 read .qmake.conf files
follow suit with qmake ...

Change-Id: Ic81ea048e043adcb6cc66b1dc64038c948310db8
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-09 21:13:35 +02:00
Oswald Buddenhagen
0df494a5a1 reshuffle prepareProject() code a bit
looks more like qmake's code now.
deals better with not-yet-existing output directories as well
(QDir::cdUp() does not work with those).

Change-Id: I062e581b7a9062f176a9bf8c686bf48b19ed0975
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-09 21:13:25 +02:00
Oswald Buddenhagen
20baedf3b5 do .qmake.cache search per sub-project
follow suit with qmake ...

Change-Id: I40ed12d8cba4ae39b80f47e34c370f40656b9d83
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-09 21:13:13 +02:00
Oswald Buddenhagen
bc4c499684 eliminate EvalIntoMode
it's a relic from times of entanglement with ProFileEvaluator.

Change-Id: I903c1a8a21fcb4a0c9029d0245fba56043e62718
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-09 21:12:51 +02:00
Orgad Shaneh
eff2789348 QtSupport: Compile with QT_NO_CAST_FROM_ASCII
Change-Id: I509e2280932477eed8ede5c9cf5d07305bb9ebdb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-05 16:24:41 +02:00
Oswald Buddenhagen
0baa1368fb fix compile on windows
Change-Id: Ida259851e5e25472c4f225c4d063b5cfa7e75475
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 16:09:17 +02:00
Oswald Buddenhagen
d78fd3933b add groundwork for supporting -t and -tp qmake options
Change-Id: Ibb1aafdaeaf8ee53bb11436d2f2ca8ccbf0ffc3c
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 14:16:03 +02:00
Oswald Buddenhagen
55dfc27c52 default cumulative mode to off
this is clearly more often used and thus makes for cleaner code

Change-Id: Ic8d100cbfc4134f1b73117b4f4a5aa5a6f4e0ccb
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 14:12:49 +02:00
Oswald Buddenhagen
9e1116c73b prune feature search paths which don't actually exist
follow suit with qmake ...

Change-Id: Ifd84044f0543a80cdabee980185cc2e8bd492ea6
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 14:05:13 +02:00
Oswald Buddenhagen
755d093617 remove support for loading features relative to current directory
follow suit with qmake ...

Change-Id: I15a742511ba551dee8e2794a8f75c648e9ba5df0
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 14:04:52 +02:00
Oswald Buddenhagen
8a4053d14b dispose of valuesDirect()
it has become a trivial wrapper around values()

Change-Id: Ia3165ec4cf968588f6ad3f5a2e8abe61dcae2f59
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 14:04:25 +02:00
Oswald Buddenhagen
9a33d2dfb2 make $$PWD non-magic on read
follow suit with qmake ...

Change-Id: I9354713232facc57bd2969d62f44890e274a70b8
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 13:57:41 +02:00
Oswald Buddenhagen
c6a0ca7bc8 make project-related variables non-magic
follow suit with qmake ...

Change-Id: I88b4edd12569dcd59d7eed0512cc16d14f2c685e
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 13:56:27 +02:00
Oswald Buddenhagen
53351d7d87 move initialization of $$TARGET to setupProject()
follow suit with qmake ...

Change-Id: I307a55cb264aa79f39ffd5fef07ee9f010d98f56
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 13:56:01 +02:00
Oswald Buddenhagen
6507337b47 make $$TEMPLATE magic on write instead of on read
follow suit with qmake ... even if the implementation is somewhat
trivial due to TEMPLATE_PREFIX not existing here yet.

Change-Id: Ifc3eda63ae278ad33b83a0570266950304f77679
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 13:55:51 +02:00
Oswald Buddenhagen
aa52a1da5c add support for $$QMAKE_TARGET.arch
Change-Id: Id10bcb37d37dd30fbe10a224b60ec45b752d34e6
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 13:55:33 +02:00
Oswald Buddenhagen
03a84a7e5e make a bunch of invariant variables non-magic
follow suit with qmake ...

Change-Id: I683eb47de3377fe1abf0611f86c4250562aa4132
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 13:55:17 +02:00
Oswald Buddenhagen
055a17de98 move initialization of numerous variables to spec_pre.prf
follow suit with qmake ...

Change-Id: I8a0c3b1317ab87b15001c9a55d3ebd70ee7f2dc6
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 13:54:30 +02:00
Oswald Buddenhagen
add2a96bf4 revamp target mode handling
follow suit with qmake ...

Change-Id: Id734e20556925cec5bf8c70d55974eb4a783f49d
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 13:54:13 +02:00
Oswald Buddenhagen
41bf7c896b surround loading of spec with loading spec_pre.prf and spec_post.prf
follow suit with qmake ...

once we move currently builtin functionality to these feature files,
things would break with qt4 (which does not have them). consequently,
we provide our own fallback versions of them.

Change-Id: Ie318f3419d78214472835c41ec1388977f2e9269
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 13:00:00 +02:00
Oswald Buddenhagen
ca2816db1a make "realification" of default specs less convoluted
Change-Id: I8586d8114c8711a18f477039a56d6d8bfc31c88b
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:59:41 +02:00
Oswald Buddenhagen
9cef89e691 make failure to load spec or cache fatal
our processing is nowadays precise enough to allow for that.

Change-Id: I0e5c7bb4b40f713f5b4cef26bb7d4c49170ae7ac
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:59:33 +02:00
Oswald Buddenhagen
3ef41951c6 revamp maintenance of base values (qmakespec+cache)
instantiate a complete evaluator instead of having just vars and
functions in the option object. that's cleaner.

Change-Id: I0ecd98307832ed072cebfd5b535572f7dcb103c1
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:59:22 +02:00
Oswald Buddenhagen
b7152d825d use a separate evaluator for preliminary cache load
it's cleaner this way

Change-Id: I9bb5dea8147a94f4529e77c663fbf59e272409f5
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:58:55 +02:00
Oswald Buddenhagen
05798f87cb factor out QMakeEvaluator::prepareProject()
Change-Id: I99a5b0b9ef3080ebc5d0546c3bf17c8806a52c72
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:56:23 +02:00
Oswald Buddenhagen
9e60457d59 add QMakeOption::do_cache
... because qmake has it.

Change-Id: Idc2c9f6a041ff1d60d95e8a2ad400f7d41f3d2d2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:56:14 +02:00
Oswald Buddenhagen
8ad7ebbd28 evaluate qmakespec & cache without any project file on the stack
they are not supposed to care for the project.
during concurrent evaluation, it would be more or less random which
subproject would trigger the spec loading anyway.

Change-Id: I46c9ef5c1461153b4ba9e7f9efdd106015d0c55b
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:56:05 +02:00
Oswald Buddenhagen
8e71dac965 require QMakeGlobals::cachefile to be already resolved on input
there are no users of this yet, so it doesn't matter.

Change-Id: If1ec6ca2d2ef1755deb3caf61d1e50f91d87d2de
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:50:20 +02:00
Oswald Buddenhagen
a5070c0d13 factor out QMakeEvaluator::loadSpec()
Change-Id: Icaa38925d031df5d45e8fc16fb4c618ebde364a7
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:50:06 +02:00
Oswald Buddenhagen
1c1c83f992 don't look for specs next to the current project
this seems to be another contender for the most useless feature ever.

follow suit with qmake. it got a less useless replacement, which will
follow here as well.

Change-Id: I5b6f7411178294acb4ef001535b46a2c37206b51
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:49:54 +02:00
Oswald Buddenhagen
868102ec24 search for default spec just like for other ones
follow suit with qmake ...

Change-Id: I02d4f477356734c83ad6681307166f6495ad7d2a
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:49:22 +02:00
Oswald Buddenhagen
39fcc3080f don't resolve paths when looking for features
all the input paths are expected to be already resolved

Change-Id: I2c9b4fb5ed25aea160669dd45fe5a4f7f3e272f1
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:49:12 +02:00
Oswald Buddenhagen
6a54c5e667 stop looking for features outside the mkspecs/ hierarchy
follow suit to qmake ...

Change-Id: I8f041adbc3305cddaf7dfd016fc83da228b253e2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:48:40 +02:00
Oswald Buddenhagen
e0657a441f don't look for features in QT_INSTALL_PREFIX
follow suit with qmake ...

Change-Id: Ia7ac7e35d45433c2f1c9c5e18ebdb626c13a9abd
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:48:28 +02:00
Oswald Buddenhagen
5a6625245b introduce ProValueMap typedef for brevity's sake
Change-Id: I41b7202acb2889d217d1f437050443bea853ee87
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:48:00 +02:00
Oswald Buddenhagen
55cad4a424 resolve some variables already at parse time
they are "compiler defines", with no dependency on the evaluation context.

Change-Id: I25bf006347ecd2edb501a344820e2ac11ff389e9
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:44:28 +02:00
Oswald Buddenhagen
a0bc0cb990 deprecate $$IN_PWD
follow suit with qmake ...

Change-Id: I4154bf80be5c22b145d9795ff26dbf24116c76c2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:44:04 +02:00
Oswald Buddenhagen
2f4171459c give load()/include() with target and infile()/$$fromfile() a clean environment
follow suit to qmake ...

Change-Id: If9aa8b14e8b54768faef9151727bdb29fa1ed64b
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:43:48 +02:00
Oswald Buddenhagen
30928e82e3 don't use a ProFileEvaluator where a QMakeEvaluator is sufficient
Change-Id: I6c0becf1a6cd8a323615a481e8fd80ed67358e3b
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:43:30 +02:00
Oswald Buddenhagen
7257b9682e remove injection of default_pre in infile()/$$fromfile()
follow suit to qmake ...

Change-Id: I6d884e284275e64e13cfea7fdc868341136c81f5
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:42:58 +02:00
Oswald Buddenhagen
ac297f8e6b introduce QMakeHandler
this is QMakeEvaluatorHandler, but derived from QMakeParserHandler.
the idea is that the parser can be used stand-alone, while the evaluator
needs the parser as well.
we will need it in QMakeGlobals as well, so put it there, as that is the
most central place.

Change-Id: I6ee46c0e4b2e044bf3bfc6e4235b53525ddfc875
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:39:37 +02:00
Oswald Buddenhagen
9c46bd5dec move expandEnvVars() to QMakeGlobals
fits better there

Change-Id: Id369d8e22db97affd03ed991433b898b110f1946
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:35:42 +02:00
Oswald Buddenhagen
4a9b1a7a58 introduce QMakeGlobals::getPathListEnv()
variant of getEnv() for fetching paths lists

Change-Id: I2adf26b31354ed97dc3fff12a4c6344b6e9c172f
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:35:32 +02:00
Oswald Buddenhagen
5d896112bc dispose of QMakeGlobals::host_mode
follow suit to qmake:
- the spec does not need to set the host mode, especially as some
  generators are multi-host capable
- the only thing the host mode affects is the path separator, which can
  be done directly instead

Change-Id: I618c2c5051234b105c4bc579240aa9f669b4d958
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:35:25 +02:00
Oswald Buddenhagen
87fbe16fd5 add QMakeEvaluator::first()
this is a convenience variant of values()

Change-Id: If8e15b46a88c00cef3435b73cf6280ab5f48c062
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:34:46 +02:00
Oswald Buddenhagen
251ed0e878 move LoadFlags to QMakeEvaluator
Change-Id: I931bce3aaf1ccaaacf586ca54b93659485b79372
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:24:44 +02:00
Oswald Buddenhagen
b4f38671a2 move remainder of QMakeEvaluator to an own file
Change-Id: I09bf3ee41e08062e14a6810d8de036e1c246b0b5
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 12:23:31 +02:00