Commit Graph

755 Commits

Author SHA1 Message Date
Joerg Bornemann
0834958063 qbs files updated
Property bindings in ProductModules now need explicit Depends items.
Also, some Qt dependencies were propagated wrongly and are now
added explicitely.

Change-Id: I58cd389eb0ab106004b1d575438d1ad2ff36189f
Reviewed-by: Marco Bubke <marco.bubke@nokia.com>
2012-04-18 17:10:55 +02:00
hjk
6808719962 preprocessor: avoid using QVector += QVector.
It destroys preallocation. See https://bugreports.qt-project.org/browse/QTBUG-25371.

Change-Id: Idde09a07f250a347f8016d8fdb04cd00d031fe10
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2012-04-18 13:20:51 +02:00
hjk
4e83279123 preprocessor: provide direct char* overloads for ByteArrayRef::operator==
Change-Id: I58de7e704bdbd3861a4a534d8080cc2a8399b7eb
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2012-04-18 13:20:17 +02:00
hjk
9e3127a2f6 preprocessor: don't create temporary bytearray objects to handle commas
Change-Id: I1c45bb9a5118e19b15878eb04e65b52bd6c5d1e7
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2012-04-18 13:20:04 +02:00
hjk
7383220d73 preprocessor: prevent temporary copy
Change-Id: Ic86d8b091da332393a527ba634a23556f2001a8b
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2012-04-18 13:06:22 +02:00
hjk
59debcd0e9 preprocessor: avoid branches in tight code
Change-Id: I8dc0910f1cf11e506eb415a6f313b47ad2d41eae
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2012-04-17 13:38:26 +02:00
hjk
f5203b67c2 preprocessor: make PPToken inlineable.
Change-Id: Ie86b4ff4a6f1987a15fcc46e8de9db487af1729a
Reviewed-by: hjk <qthjk@ovi.com>
2012-04-17 11:21:35 +02:00
Thiago Macieira
8a5074734a Fix the compilation with GCC 4.6's headers.
std::list is in #include <list>

/home/thiago/src/qt/creator/src/libs/cplusplus/pp-engine.cpp(110): error: qualified name is not allowed
      std::list<PPToken> tokens;
      ^

Change-Id: I02a08afe6a678d66d528ce5dfca08317735704e8
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-04-11 13:32:44 +02:00
Joerg Bornemann
96a7fbe3ae qbs files: use Qt5 module dependencies
Renamed gui -> widgets.
Renamed declarative -> quick1.

With qbs the usage of qt.widgets and qt.quick1 with Qt4 is supported.

Change-Id: I6cadaf34527f1f880d74ced7d2d18dd9801b7de1
Reviewed-by: Alessandro Portale <alessandro.portale@nokia.com>
2012-04-10 18:02:39 +02:00
Eike Ziller
c814538d95 Merge remote-tracking branch 'origin/2.5' 2012-04-04 16:20:10 +02:00
Orgad Shaneh
06aa0363b0 Qbs: Libraries capitalized and relocated in bin on Windows
Change-Id: I994027ef50f5f7c4ff1b2bef06d9f8db037243e4
Reviewed-by: Marco Bubke <marco.bubke@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-04-04 14:16:12 +02:00
Francois Ferrand
68471c2100 Preprocessor: fix macro definition line.
The line corresponding to the macro definition is simply the token's
line. This caused errors in the macro definitions, since there were
multiple macros defined on the same line of the same file.

Task-number: QTCREATORBUG-7217
Change-Id: I56d17eeba677ac51f9eed283c0e964019bdfe4b7
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-04-02 17:01:52 +02:00
Francois Ferrand
332072019a Preprocessor: Fix client notification.
- Notify end of macro if function expansion is skipped.
- Do not notify client of generated macros expansion.

Change-Id: Ic027fc13ee391425a5ebadc8e84b9305912dbcf0
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-04-02 13:49:00 +02:00
Erik Verbruggen
f5aacb89eb [C++] Robustness fix for boost's preprocessor/seq/fold_right.hpp.
Change-Id: I11f6cff556519b768dd5d979dfd184809ed18291
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-03-30 16:05:18 +02:00
Erik Verbruggen
48154450de [C++] Fix crash for missing token after #include directive.
Change-Id: Ia54c5ddc801962c89dc0483f5912f1de436b8f43
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-30 13:36:31 +02:00
Erik Verbruggen
ff0a465403 [C++] Always output a #line as first line of the pp output.
Change-Id: I60d25109ae8fe3628b1899078a21010263787c33
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-03-30 13:24:36 +02:00
Erik Verbruggen
2a74097b54 Fix #include MACRO_NAME.
Change-Id: Id1c4046d028ad26d17b28feb53a832f3b48363f1
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-29 17:17:00 +02:00
Erik Verbruggen
6c24b8b740 Removed debug-build flags.
Change-Id: Ic95a68e46f4f4df38cbee2c0d5fe2428f5bee39f
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-29 14:46:18 +02:00
Erik Verbruggen
60db573660 [C++] Rewrite of the preprocessor.
This rewrite fixes a couple of issues with the pre-processor. It now
supports:
- macros in macro bodies
- stringification of parameters [cpp.stringize]
- the concatenation operator [cpp.concat]
- #include MACRO_HERE
- defined() inside macro bodies used in pp-conditions.

Change-Id: Ifdb78041fb6afadf44f939a4bd66ce2832b8601f
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-03-29 14:28:17 +02:00
Francois Ferrand
2386d701b6 Preprocessor: fix line for generated code.
The macro used to be at the same line as the first token after the
closing parenthesis.

Change-Id: I4c2d7317632baf612900e84572017aeb247d0585
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-19 10:48:43 +01:00
Francois Ferrand
558b6e08ae Preprocessor: fix expanding macro arguments.
Expanding macro arguments can add or remove argument for a nested macro,
so the actual parameters list was not correct.

Also, remove unused arguments reference list and reserve space for the
expected number of arguments.

Change-Id: I4cf369cbb3909927c6bf65750bd715fa6f070fad
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-19 10:35:21 +01:00
Francois Ferrand
3e9105e401 Preprocessor: fix handling of first empty argument.
First empty argument used to be dropped: e.g. MACRO(,test) would be
expanded with one parameter only, with value 'test'.

Change-Id: I693fbb7faf1360f62266fa04c4b39c2de0d159a7
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-19 10:33:14 +01:00
Francois Ferrand
ffd58c577a Preprocessor: Handle variadic arguments (__VA_ARGS__).
Change-Id: I69aa6c5e01ea97a4413f77f20ebbb4d4beb971aa
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-19 10:31:09 +01:00
Erik Verbruggen
dfd28a1d32 Fix build breakage after making plugins dependent on cpptools.
Change-Id: Iae2c15efe25580fb616bdc3dd4b8ff3581cd481a
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-03-15 15:28:17 +01:00
Erik Verbruggen
f1b2100e34 Move the ModelManagerInterface out of the CPlusPlus library.
Change-Id: Iffaa18f848a22f6961b49dff048672b194570df6
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-03-14 11:46:24 +01:00
Eike Ziller
63f0c0a62f Merge remote-tracking branch 'origin/2.5'
Conflicts:
	qtcreator.pri

Change-Id: Ic24b756b41d2a13f3d696dee69553d2c3241ab95
2012-03-14 09:33:25 +01:00
Francois Ferrand
a450c13327 CppEditor: Fix go to definition of macros.
- Go to macro definition only on macro name (ie not in parameters).
- Prefer macro definition over expanded code definition, as the
  preprocessor is executed first: when trying to go to definition, the
  user sees the macro, not the expanded code.

Task-number: QTCREATORBUG-2240
Task-number: QTCREATORBUG-6175
Task-number: QTCREATORBUG-6848
Task-number: QTCREATORBUG-7008
Task-number: QTCREATORBUG-7009

Change-Id: I819c763524e79b20518c26a46a99a3a3b0a131bd
Reviewed-by: Andre Hartmann <aha_1980@gmx.de>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-13 10:15:17 +01:00
Flex Ferrum
4ca6c51c7f C++: Lambda formatting issues.
Fix code formatting in cases when '{' and '}' appear within expression
context (ex. lambda expression, initializer lists).

Change-Id: I42b28170a8d6d5fd08a9a1a8d8e7698219c18966
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-12 14:38:26 +01:00
Erik Verbruggen
2d262bd3b7 [C++] Added object pool handling for CompletionAssistProvider.
Change-Id: I89634989a7f360a30f7ed1bde4e67c93551ddfe4
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-02-23 10:33:50 +01:00
Erik Verbruggen
368d5926ca C++: handle destructor names with template parameters.
Change-Id: I74b4fd5e043db935abc18345b303d294b71e8fc2
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-02-23 08:39:34 +01:00
Flex Ferrum
da2aa0df72 C++: Add support for C++11 range-based 'for' loops
Change-Id: I7eef048a7952a79f031ae3d0abba68e3c5ffbfb8
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-21 15:27:00 +01:00
Joerg Bornemann
ff92cdec43 add qbs files
Change-Id: If6bf71797ae81655d24a77e6badb86a77312af38
Reviewed-by: hjk <qthjk@ovi.com>
2012-02-20 19:18:18 +01:00
Bill King
c750fc2523 Compile fix for windows.
Change-Id: Ibd1dac3ac1fdf25666eb3ec4c076a54e98548ec7
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-02-17 09:54:28 +01:00
Erik Verbruggen
3aab8beaf4 Supply c++11 flags and per-project info to c++ code model.
A manual squash/merge of the changes below, plus a couple of subsequent
code fixes.

59085aa5fbb99e2d786cd2c1a06c24a111ccb49f:
    Modify CppModel::ProjectInfo

    Adding per project node information, to pass on the correct
    defines/includes for each file, instead of aggregating them incorrectly.

    Also split up SOURCES and OBJECTIVE_SOURCES.

    Also ask the toolchain to convert the compilerflags to flags the
    codemodel understands, for now only gcc and only c++11.

    Also make the toolchain aware of the flags used to compile, so that it
    can emit the correct defines.

    Note: No header files are passed on.

74028802314cd4e75b41b46407433e07090a304d:
    GCC: Evaluate cxxflags when checking for predefined macros

ebaaa4957e4c02cc9637a998eddae1d0acd74f83:
    MSVC: Take cxxflags into account when checking for predefined macros

9bfce7e889bcf7bcc47bf880e3ea25945ca7d0d7:
    Compile fixes

Change-Id: I9de94ad038dfc5dc1987732e84b13fb4419c96f5
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-02-16 15:17:17 +01:00
Erik Verbruggen
3fa55b7ab9 Removed module names from #include directives.
Getting the #include directives ready for Qt5. This includes the
new-project wizards.

Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-02-15 16:24:46 +01:00
Erik Verbruggen
bfd6a60b93 [C++] Undo accidental commenting-out of NDEBUG flag.
Thanks to Flex Ferrum for spotting it.

Change-Id: I66d722a1da6c05c51a4a648453b1da6f2f445212
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-13 15:19:45 +01:00
Erik Verbruggen
3f5dc36a53 C++11: first set of changes for decltype.
Change-Id: I49d6ff7eb1805cd07bdfcb27bb37d4c6cadc9115
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-10 16:29:04 +01:00
Friedemann Kleint
1d1d2f0b74 Compile with Qt 5.
- QtQuick1 renaming.
- Start on qtconcurrent split (pending renaming of Qt Creator's
  qtconcurrent library).
- QWinEventNotifier is a public class in Qt 5.
- Metatype system: Classes need to be known.

Change-Id: I5582e7cc2777bf791a08b049262217055769c80f
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-08 15:47:00 +01:00
Erik Verbruggen
dbc3332b8e C++: Moved completion/highlighting into the model manager.
This way the editor does not need to know all the details of
instantiating or maintaining classes for highlighting and/or completion,
it can just ask the model manager. The change also enables different
highlighting- or completion-engines without changes to the cppeditor.

Change-Id: I8000d9d9fe446b292defddb2295493cf77d0f14a
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-02-08 14:30:14 +01:00
Roberto Raggi
5fb624b1db Fix semantic of C++ 11 inline namespaces.
Add the declaring `inline' namespace to the `using list' of its
enclosing namespace symbol. This should be enough to ensure
the correct visibility of the symbols declarated in the inlined
namespace.

Change-Id: Id4de74577c498fe439a49709a306ef0deb145988
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-02-03 15:37:17 +01:00
Erik Verbruggen
1d3dc30153 C++11: add support for static_assert.
Change-Id: I82d8d60acaa9265fd25e0a3734855b19bdef9c06
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-02 13:49:22 +01:00
Erik Verbruggen
dd4299073e C++11: handle noexcept specifications.
Change-Id: I7da3affea2758b2e01124105e2521e1f2c5f6678
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-02 12:22:20 +01:00
Flex Ferrum
c6fc0be8ae C++: Type deduction for auto-declared variables implemented
Handled to major cases of 'auto' variable declaration:
1. auto var = someInitializer;
2. Q_FOREACH(auto item, collection) or foreach(auto item, collection)

In first case type deducted directly from initializer. If variable has no initializer then corresponded error reported. In second case type deducted from '*collection.begin()' expression.

Change-Id: Ie930add1648b99440281ae04d973fd6904bc9e46
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-31 10:03:36 +01:00
David Schulz
e44254bb9f Find usage displays content of the first line
Task-number: QTCREATERBUG-6176

Change-Id: I1c45b951bfde0b0d33bf462f532da7cbdbaa3fe7
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-01-30 16:08:42 +01:00
hjk
2931a499e6 Long live the king!
Change-Id: I2b72b34c0cfeafc8bdbaf49b83ff723544f2b6e2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-26 19:55:36 +01:00
Leandro Melo
466ea4842c C++: Improve file accuracy when finding symbols
This patch introduces a priority-based mechanism when searching for certains
symbols in the snapshot. The priority corresponds to how similar the file path
from the "reference" symbol is to the file path from the "candidate" symbol.
This solves a variety of issues when matching "equivalent" symbols but that
are in another file/project, such as when following a function declaration,
a forward class declaration, or adding a definition through a quickfix.

There's now a symbol finder which will compute the "best" search order and cache
the most recent results. A consequence is that following symbols in some cases
is slower, but not apparently significatly.

Note: The "find" functions were moved from the Snapshot to the new SymbolFinder
class.

Task-number: QTCREATORBUG-6697
Task-number: QTCREATORBUG-6792

Change-Id: Ia518f014275fec1f4d0cb3224bd4e06a9df6d557
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-23 11:34:44 +01:00
Leandro Melo
c287d90604 C++: Rename source/setSource to utf8Source/setUtf8Source
Continuinng a previous commit... This is in order to make
the interface clearer.

Change-Id: Ic1b05217f878578bc84a064927507b75981c47d6
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-13 11:22:28 +01:00
Leandro Melo
fd179ed951 C++: Accept UTF-8 byte arrays in type of expression
The model uses UTF-8 internally and it makes more sense to only
convert when necessary.

A following commit will rename the source/setSource methods in
document for more clarity too.

Change-Id: I960ea0754efabd1436ad4b4299a57faeb65a8bee
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-13 10:17:03 +01:00
Eike Ziller
e2b0835b58 Merge remote-tracking branch 'origin/2.4'
Conflicts:
	qtcreator.pri
	src/libs/qmljs/qmljstypedescriptionreader.cpp
	src/plugins/analyzerbase/startremotedialog.ui
	src/plugins/qmldesigner/designercore/include/rewriterview.h
	src/plugins/qt4projectmanager/makestep.cpp

Change-Id: If9d15a8c8f73106585fd8ce6ac47c253a40af6b1
2011-11-25 09:48:25 +01:00
Christian Kamm
2f58fb95bc C++: Fix completion for namespace aliases at global or namespace scope.
Task-number: QTCREATORBUG-166
Change-Id: Ic0fe4067caad37e51f7e253fd6678a6680350870
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-11-22 14:14:11 +01:00