Commit Graph

30 Commits

Author SHA1 Message Date
Oswald Buddenhagen
e739841c63 implement if() by means of precompilation
the performance is about the same (depending on the expression type it's
better or worse), but a lot of code just disappears.

Change-Id: I60eb9b87f23cc811d3f9577841c38966ecfd8e43
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:44:55 +02:00
Oswald Buddenhagen
bb063b35f4 don't ignore parsing errors in eval() and on the command line
to optimally support cumulative mode, the parser will happily return a
bytecode object even when parsing failed, so errors must be treated
later.

Change-Id: I1a5c0ca9bf46a93d7359f590f0dd0ddc96baba0a
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:44:25 +02:00
Oswald Buddenhagen
160e608f5a make visitProBlock() return the last condition's state
will need it later.

eval() needs to be taught to ignore the return code, as qmake stupidly
does. as a side effect, flow control statements inside eval() don't have
an effect outside eval() any more, which is only sane.

Change-Id: I924e9d687f693a224dd7fa73af4a9bc69247e2df
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:44:13 +02:00
Oswald Buddenhagen
3d629b1a2b add $$system_quote() & $$shell_quote() functions
follow suit with qmake ...

Change-Id: I3db37ba73cb709d8baf200600ae29241bc26bee5
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:43:57 +02:00
Oswald Buddenhagen
3522a3e050 add $$system_path() & $$shell_path() functions
follow suit with qmake ...

Change-Id: I41ceb93b234eafd5202c618a7af36e35278ad79f
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:43:27 +02:00
Oswald Buddenhagen
6c9c086632 add $$clean_path() function
follow suit with qmake ...

Change-Id: Ic80bab44704baf8a265b0ebead6f0ec024653f73
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:43:04 +02:00
Oswald Buddenhagen
58a431fac9 add $$absolute_path() & $$relative_path() functions
follow suit with qmake ...

Change-Id: Idbe30c40ef86286b871d678900c963b5d9d851c4
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:42:50 +02:00
Oswald Buddenhagen
187751f967 add $$shadowed() function
follow suit with qmake ...

Change-Id: Ic97576eaf74dfd58e8d8cd2f8034dac3963b92c4
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:42:39 +02:00
Oswald Buddenhagen
b475ae43de add $$enumerate_vars() function
follow suit with qmake ...

Change-Id: I28649e443e91c061e1452674dfc2a101b097da7f
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:42:19 +02:00
Oswald Buddenhagen
f1d7836ec0 add $$prompt() function
follow suit with qmake ...

this doesn't use any of the fancy handler functions for printing the
message, as it doesn't seem worth it: the read is done directly from
stdin anyway, and everything else would be overengineered, given the
purpose - this is probably the most useless qmake function ever.

Change-Id: I4831bfc06ce2623c4090d13c04be286bc18f1b5d
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:42:10 +02:00
Oswald Buddenhagen
115b898d8c add $$val_escape() function
follow suit with qmake ...

Change-Id: I2262b48f5989c7969a59f7d41b5a308fc5f52c29
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:41:55 +02:00
Oswald Buddenhagen
24feed1bb4 add $$reverse() function
follow suit with qmake ...

Change-Id: I21da3676713101df1be956946c6543f7ae388f5f
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-08-01 16:41:25 +02:00
Oswald Buddenhagen
dc3ed21141 add $$format_number() function
follow suit with qmake ...

Change-Id: Ie51c44cb38baa32c9c519bd7fec660f4c87f78f4
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-08-01 16:41:19 +02:00
Oswald Buddenhagen
40ec38735e unify error messages
- start with capital letter (unless it's a function name)
- end with period

Change-Id: I62350ca2c632cf27334fe6acad2ad0487eef74a4
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:41:05 +02:00
Oswald Buddenhagen
397cfb700b normalize the output of $$find()
follow suit with qt5 qmake. this is actually wrong for qt4 qmake, but i
boldly assume that it doesn't matter.

Change-Id: I7e0ced1f335fde28f56fa6c5a4a1a581ec7e9ad0
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:40:17 +02:00
Oswald Buddenhagen
780c0eac10 fix $$split()'s argument check
Change-Id: I2cd6dc1ad571497f540360d17dadd5e4b300ef4a
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-08-01 16:40:01 +02:00
Oswald Buddenhagen
a93e24fd0d implement qmake language and deprecation warnings
Change-Id: Ia5dd0c408ace4e779da898ffb60e9ca12a383225
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 16:09:49 +02:00
Oswald Buddenhagen
0af96c128a revamp message callbacks
instead of having a bazillion different callbacks, have only one with a
type parameter. the drain typically multiplexes all into one stream anyway.

Change-Id: I963daefc5a266c91334a4cc599570ed26b603d5d
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-08-01 16:09:33 +02:00
Eike Ziller
e0e8cf3ada Contact -> qt-project.org
Change-Id: I7134d7de30bcf9f9dcfad42520dd45ee083a852d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-19 13:23:21 +02:00
Oswald Buddenhagen
aca1c4bd50 introduce PROEVALUATOR_FULL #define
if this is enabled, the evaluator implements all functionality
necessary for qmake. without it, functionality which is unnecessary or
outright dangerous in qt creator or lupdate context is omitted.

Change-Id: I233cfa6daf2e4451f9f1d3d14711be2a7cfe4293
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-09 21:18:29 +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
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
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
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
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
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
Oswald Buddenhagen
7b3393918c move builtin qmake function implementations to separate file
the functions are still part of the same class, though.

Change-Id: I58a69d334ac9d1d53b5395d0b655895ffe18c7be
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:11:24 +02:00