Commit Graph

4400 Commits

Author SHA1 Message Date
Eike Ziller
93cf0f126e Merge remote-tracking branch 'origin/2.5'
Conflicts:
	src/libs/zeroconf/embed/DebugServices.h
	tests/system/shared/project.py

Change-Id: I990f6b87ef8570317caf705bbca465a1a01f64b2
2012-07-19 09:16:52 +02:00
Christian Stenger
7184fabfc7 Squish: Fix openQmakeProject()
This fixes openQmakeProject(). There's still more
to do (e.g. selecting Release/Debug) what will be
done in later patch(es).

Change-Id: I34ebf793c89b2d2ddf1f97c7eed6c6eb6c7f5bcb
Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
2012-07-13 17:10:17 +02:00
Robert Loehning
1d27304628 Squish: Added Desktop target
Change-Id: I3b44bb1083fbfb6624bed4226ab752f6bd81f79f
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-07-12 16:53:46 +02:00
Robert Loehning
06cad70310 Squish: Updated __selectQtVersionDesktop__
Change-Id: I45b870c9f0def59f11196c98a446a506ce672049
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-07-12 16:53:25 +02:00
Christian Kandeler
3afbd2f912 Debugger:Sync name demangler with specification.
The new stuff is mostly C++11 features (closures etc.).
Also fix a number of bugs uncovered along the way.
All tests succeed now, including the examples
from the specification.

Change-Id: I9b224b0dd82ad8f5b17d5f5d1809d1dea1a7a803
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
2012-07-12 14:20:52 +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
9067399e37 refactor relation between parsedProBlock() & parsedProFile()
this is clearer and not necessarily more code.

Change-Id: Ic698a8076658ae986d0dbdeebb1f4760dd806e35
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-09 21:18:22 +02:00
Oswald Buddenhagen
0e6f6e3ca5 make $$QMAKE_QMAKE available to projects
not setting it outside the main project processing, as it's even less
likely to be needed there.

Change-Id: Ia7afe3a53bf0977d739bf23d7cd79e3a2aee8867
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-09 21:17:36 +02:00
Christian Kandeler
889409f2cd Debugger: Name demangler improvements.
- Fix assertion macro.
- Make parse tree smaller by getting rid of nodes that serve no purpose.
- Add all examples from the ABI spec to the auto test.

Change-Id: Id63d8330e6380bfb7d56acd1d445f7b70a1f6e70
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 12:14:46 +02:00
Christian Kandeler
96368496dc Debugger: Refactor name demangler.
Now all the parsing logic as well as the stringification is in the tree
nodes.

Change-Id: Ie8222729c14c0102d94045026fc61a75cd31cc63
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
2012-07-06 19:55:09 +02:00
Christian Kandeler
b206feabe7 Debugger: Refactor name demangler.
So far, we converted the mangled to the demangled representation on the
fly while parsing. Because some demangled strings look different
depending on higher-level context, awkward string manipulations were
then necessary at some later point.
The new solution is much more easily maintainable, creating a tree with
a node for every rule in the grammar first and converting the complete
tree to the demangled string later.

Change-Id: I59088df259611d7cd78af47b81b6a21d628a787f
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
2012-07-06 10:20:39 +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
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
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
Oswald Buddenhagen
c84fbe0455 move QMakeEvaluator declaration to an own file
Change-Id: Ifc13af5f5b8a2b497075027acfb7b621ab0514ad
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:06:40 +02:00
Oswald Buddenhagen
95dfa15a7c ProFileEvaluator::Private => QMakeEvaluator
more natural name. the ProFileEvaluator class itself is somewhat more
high-level, so it will remain named as it is. i'll move around the code
at a later point.

Change-Id: I03fa844d0109e281f3602b4781ac11c6f2954aa4
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:06:23 +02:00
Oswald Buddenhagen
888c187dd5 ProFileParser => QMakeParser
more natural name

Change-Id: I38d2a2fc785686aa5777afe41452b53f2c24adf8
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:05:03 +02:00
Oswald Buddenhagen
24f24c4546 factor QMakeGlobals into an own file
Change-Id: I55d24be06fa78f70bad614a7125c3079c92ab8e5
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:04:47 +02:00
Oswald Buddenhagen
37b2f88e27 ProFileOption => QMakeGlobals
more accurate class name

Change-Id: I4258b221727e79cc88d5f57dd1f6631ba0bba625
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-07-04 12:04:29 +02:00
Bill King
a8debd265f Fix to handle situation where Harmattan isn't found in list of targets.
Change-Id: I7de9e62f756f0c8ea8858853d59bf3743e053ab0
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-07-03 14:30:22 +02:00
Robert Loehning
f9b8ae6a33 Squish: Moved and updated qtversion.xml
Change-Id: I2e15c2926c1079e21370663210e91fe144d8ef02
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-06-29 17:41:04 +02:00
Christian Kandeler
0ab8e0bbdf Debugger: Name demangler improvements.
- Correctly decode conversion operators and add test cases.
- Adapt to change in the specification regarding template parameter
packs.
- Make #ifdef'ed code compile.

Change-Id: Ifea1408d08172f9aeccd5e64a1e4818cd632a0d0
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-29 10:05:15 +02:00
hjk
bb31b2572f debugger: add manual test for pointer-to-derived case in QVector
Change-Id: I51db82d982351cdcf8ef64ba00521cb4d260bd45
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-28 15:25:54 +02:00
Robert Loehning
0db4c917f4 Squish: Fixed HELP06 for master
Change-Id: Ic2e4f49502764e8835341c0d712c6c418d7259a5
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-06-26 15:27:21 +02:00
Leandro Melo
d6ccffc06c C++: Core changes in preprocessing
Summary of most relevant items:

- Preprocessor output format change. No more gen true/false. Instead
  a more intuitive and natural expansion (like from a real compiler) is
  performed directly corresponding to the macro invocation. Notice that
  information about the generated tokens is not lost, because it's now
  embedded in the expansion section header (in terms of lines and columns
  as explained in the code). In addition the location on where the macro
  expansion happens is also documented for future use.

- Fix line control directives and associated token line numbers.
  This was not detected in tests cases because some of them were
  actually wrong: Within expansions the line information was being
  considered as originally computed in the macro definition, while
  the desired and expected for Creator's reporting mechanism (just
  like regular compilers) is the line from the expanded version
  of the tokens.

- Do not allow for eager expansion. This was previously being done
  inside define directives. However, it's not allowed and might
  lead to incorrect results, since the argument substitution should
  only happen upon the macro invocation (and following nested ones).
  At least GCC and clang are consistent with that. See test case
  tst_Preprocessor:dont_eagerly_expand for a detailed explanation.

- Revive the 'expanded' token flag. This is used to mark every token
  that originates from a macro expansion. Notice, however, that
  expanded tokens are not necessarily generated tokens (although
  every generated token is a expanded token). Expanded tokens that
  are not generated are those which are still considered by our
  code model features, since they are visible on the editor. The
  translation unit is smart enough to calculate line/column position
  for such tokens based on the information from the expansion section
  header.

- How expansions are tracked has also changed. Now, we simply add
  two surrounding marker tokens to each "top-level" expansion
  sequence. There is an enumeration that control expansion states.
  Also, no "previous" token is kept around.

- Preprocessor client methods suffered a change in signature so
  they now receive the line number of the action in question as
  a paramater. Previously such line could be retrieved by the client
  implementation by accessing the environment line. However, this
  is not reliable because we try to avoid synchronization of the
  output/environment lines in order to avoid unnecessary output,
  while expanding macros or handling preprocessor directives.

- Although macros are not expanded during define directives (as
  mentioned above) the preprocessor client is now "notified"
  when it sees a macro. This is to allow usage tracking.

- Other small stuff.

This is all in one patch because the fixes are a consequence
of the change in preprocessing control.

Change-Id: I8f4c6e6366f37756ec65d0a93b79f72a3ac4ed50
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-06-25 15:49:27 +02:00
Robert Loehning
1776cee64b Squish: Check for elements in project tree
Change-Id: I11a74d6d9703871b20f9c0a59bf613717e6553ef
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-06-25 10:00:50 +02:00
Eike Ziller
6e2db0b66e Merge remote-tracking branch 'origin/2.5' 2012-06-20 14:52:30 +02:00
Robert Loehning
79ca1f3d7c Squish: Fixed missing suffixes in getEditorForFileSuffix
Change-Id: Iabda661a70a7656003b47aaf91de28c213d076dc
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-06-20 12:41:03 +02:00
Jan Kerekes
f22449b94a Squish: Added new test cases(4, 5) to c support suite
initial commit

Change-Id: If2fb169ac66ccbcc463e4cfef491ca4fb3e01c30
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
2012-06-19 17:32:39 +02:00
Leandro Melo
9daa34003d Revert "C++: Re-enable macro definition line test"
This reverts commit 44d8e7bef7.

The original test case was actually right. I guess I was mislead
by the recently added preprocessor tests, which are the ones
that should be corrected (together with the preprocessor, which
seems to have issues with # lineno generation).

Conflicts:

	tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp

Change-Id: I47f82ed23a37086d0d81c4b3ea2cac48fb753451
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Francois Ferrand <thetypz@gmail.com>
2012-06-19 12:47:52 +02:00
Leandro Melo
f978400ae5 C++: Better handling of arg count mismatch in macros
Do not expand function-like macros at all when there's a mismatch
in the parameter/argument count.

The report below raises the issue but its expected result is not
correct. This would be the more appropriate fix.

Task-number: QTCREATORBUG-7225
Change-Id: Ide8580faa7b724d3e8b396ec1f899cc5ca7f9e7e
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-19 12:47:44 +02:00
Christian Stenger
eeb7ecbb40 Squish: Fix for UI change
Additionally changed waiting for TargetSelector
from 20s to only 5s.

Change-Id: I2e342faa6f87b86335bb01f28832ad9c01a27ffb
Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
2012-06-18 20:13:58 +02:00
Christian Stenger
89aaa96031 Squish: Fix project.py
* add Desktop as available target in __chooseTargets__()
* do shadow builds for Desktop targets in openQmakeProject()

This patch makes https://codereview.qt-project.org/#change,28038
pass for me on Linux as well.

Change-Id: I3a4395a401198756e6a7d6a38c0b024167088dc3
Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
2012-06-18 19:49:46 +02:00
Robert Loehning
56c7facc68 Squish: Testing GLSLEditor in tst_select_all
Change-Id: Ib1d16d7cb7fe108b23c9eca70da6b6de2f9c563a
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-06-18 19:49:04 +02:00
hjk
f5fe20ef31 debugger: add a pointer to global data to manual test
Change-Id: I6ebb0058f5c1717c2dd4224107d25544005a3116
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-13 13:16:28 +02:00
hjk
c68cf6dcd9 debugger: add example code for multiple sub-breakpoints to test
Change-Id: Ifa12a6124d37a29a9e294ed14c8a7433c24cafa3
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-13 10:17:46 +02:00
Jan Kerekes
23c7665cc5 Squish: Added new test cases/suite for help functionality
initial commit

Change-Id: I20aae999dec164a29e40c2926e36c015526c17cd
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
2012-06-12 19:00:24 +02:00
Leandro Melo
2af60cb1bf C++: Track macro argument reference even when empty
Change-Id: I6d226b4e42f94ebee41d012050c5109895f0c432
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-12 18:10:56 +02:00
Christian Stenger
d77d0ae504 Squish: Fix for UI change
Change-Id: Ida522c026c41c8cd5bd29b9cca3bb6b9334c84c4
Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
2012-06-12 09:35:09 +02:00
Eike Ziller
1ccde24c77 Merge remote-tracking branch 'origin/2.5' 2012-06-11 16:39:38 +02:00
Christian Kandeler
79de09f266 SSH: Streamline SshRemoteProcessRunner's output handling.
Make it just like SshRemoteProcess (and QProcess). The current
implementation annoyingly forces client code to establish additional
signal/slot connections, even if they only want to evaluate the output
at the end.

Change-Id: Id8c30dd156574d7d26d848d8e0705856a16d3747
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-08 10:15:43 +02:00
Christian Kandeler
303e67304e SSH: Name SshRemoteProcess::ExitStatus values like the QProcess ones.
(We cannot use QProcess::ExitStatus itself, because it does not contain
FailedToStart.)

Change-Id: I83ed6de621e2693e539562cd8e56ef478fa4fcb9
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-08 10:12:11 +02:00
Leandro Melo
d90264d6c2 C++: Also expand first token after macro define
It was previously beeing skipped.

Change-Id: Iadd9b03acbcf0ee0fb4db537b8597661cb93af3f
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-05 15:05:19 +02:00
Leandro Melo
809a4ed91a C++: Also parse static_assert as top-level declaration
Add some checks for C++11 flag as well.

Change-Id: Ic5ee81d72bc88a22e71b324ef01014791b833604
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-05 15:03:01 +02:00
Robert Loehning
5d01b60d56 Squish: Avoid warning about missing Harmattan target in APTW01
Change-Id: Ibeb0477a8283d229888c4744beecfc6bd8252f3c
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-06-05 11:01:00 +02:00
Robert Loehning
2dcec0cac4 Squish: Updated check for new, more detailed warning
Change-Id: I55b470db573aaca679df9cb1e89511b858683214
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-06-04 16:39:42 +02:00
Robert Loehning
046f42b282 Squish: Removed unused code and data
Change-Id: I20df2aa148002ecb9b1526df125daf04bc76010e
Reviewed-by: Bill King <bill.king@nokia.com>
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-06-04 14:58:33 +02:00
Robert Loehning
0853fa077b Squish: Added tst_simple_debug to suite_debugger
Change-Id: I2b13562e774780b0ccb15decdd84f32a08e1f60a
Reviewed-by: Christian Stenger <christian.stenger@nokia.com>
2012-06-04 13:14:33 +02:00
Leandro Melo
ca7ac8c035 C++: Fix macro uses line info
Make sure the environment line is consistent during preprocessor
directives and identifier handling so clients can rely on consistent
information. Particularly important for macro usages.

New tests also added.

Change-Id: I962a39a86cd17b8d945d2959c2c95e2d258ea3e6
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-01 14:28:03 +02:00