Commit Graph

304 Commits

Author SHA1 Message Date
Daniel Teske
1b11f9b3c0 QmakePriFile::update: Don't call buildDir() all the time.
Instead call it once per .pro file and pass that to all .pri file parses
and other functions. This cuts down the number of calls for opening
qtproject.pro from ~3000 to ~700 and speeds up opening qtproject.pro
by roughly 3%.

Change-Id: Iffd46d4bbedc9c380f70e916dae7151495990b39
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-09-15 15:33:20 +02:00
Erik Verbruggen
7290c43da1 C++: update project info once after finishing adding all project parts.
So that recalculating the information is not O(n^2) but linear.

Change-Id: I69903e0b5ad321d071804d782ad634a3f300e71a
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-09-12 17:42:32 +02:00
Christian Kandeler
0c3eeab464 RemoteLinux: Create run configs by target name, not by project file.
The current approach fails for all build systems where one project file
can define more than one executable.

Change-Id: Ieda413975709fbd6e7ea87b185aa962f63cb7c1f
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-09-09 17:53:14 +02:00
Daniel Teske
53db457521 ProjectFileVisitor: Make faster
Instead of checking if a file is unique with a O(n) operation per file,
do one pass at the end after sorting. This makes opening qtproject.pro
roughly ~7% faster.

Change-Id: If30bdeb8f72e5b28fb900e8e7a45bddb5f9f7822
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-09-04 16:11:59 +02:00
Erik Verbruggen
e560ef82ef QMakeProject: put different languages into separate project parts.
This is in preparation for changes to the ProjectParts, where one part
can only hold files for 1 language.

Change-Id: I0e69e0f174341054ed89273d288a78d9aa468d59
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-21 13:15:16 +02:00
Nikolai Kosjar
6b5298faf9 CppTools: Move Project{Part,Info} to new cppprojects.{h,cpp}
Change-Id: Ieff216017b9da1e6a12121688ea9572bdd81fd9b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-20 10:28:35 +02:00
Fawzi Mohamed
02bdf30f45 qmljs: improve handling of qml dialects
Language::Enum -> QmlDialect
 * class instead of enum
 * moved Language specific operations to it (from Document)
 * nicer handling
QStringList -> PathsAndLanguages
 * store language along with path, to perform a correct scan and improve
   path handling

Change-Id: If69d35c63cfeb48aa670b51870916cd0c40f1916
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-07-30 15:07:35 +02:00
hjk
71c6d4d771 ProjectExplorer: Using function objects for kit matching
Change-Id: I377298385df345a6d30217bb018964a64897d42e
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-07-25 14:28:45 +02:00
Fawzi Mohamed
6763352340 qmljs: move defaultProjectInfoForProject to the qmljs library
This removes qmakeprojectmanager and qmlprojectmanager dependency on
qmljstools.
Qmlprojectmanager still imports qmltoolsconstants.h for a constant
but that gives no runtime dependency.

Change-Id: Ifd2e76500a3b27a21937603925f03a70049900e1
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-24 16:54:42 +02:00
Daniel Teske
29ca1a5b67 Project: Rename supportsNoProjectTargetPanel to requiresTargetPanel
Just a better name.

Change-Id: I6f3ab3fe6e8f565105a770b8bf8fd198ed6c799f
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-07-21 11:30:15 +02:00
Erik Verbruggen
3d33886e53 C++: fix include/framework path handling.
Instead of having two lists of paths, now only one list is used where
both include paths and framework paths can be mixed. This reflects the
way the compiler is invoked, and retains the (correct) search order.

Task-number: QTCREATORBUG-11599
Change-Id: I373953e3e305df5b7a0d10920e12d146584adf9f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-07-04 13:51:36 +02:00
Christian Kandeler
93304df038 Always pass Core::Id by value.
Currently we pass in some places by value, elsewhere by const ref and
for some weird reason also by const value in a lot of places. The latter
is particularly annoying, as it is also used in interfaces and therefore
forces all implementors to do the same, since leaving the "const" off is
causing compiler warnings with MSVC.

Change-Id: I65b87dc3cce0986b8a55ff6119cb752361027803
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-01 11:52:08 +02:00
hjk
93ccf4f266 IDocument: Make mimeType a value member
Change-Id: I2e90ccf0a45ae8d00bcd00ec77fe0d9776f2f119
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-07-01 10:54:55 +02:00
Nikita Baryshnikov
12103e0f67 Reinvent deprecated qSort as Utils::sort
Change-Id: I4f6011cc2b6127037249aabc2426a88ad7108ebf
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-19 14:00:32 +02:00
Daniel Teske
c78258cd57 Allow the user to restrict rc creation to certain .pro
Task-number: QTCREATORBUG-10953
Change-Id: Iff1a31c007ac777bfa390d48237480ef56ffc0e4
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-06-16 13:04:23 +02:00
Daniel Teske
204de740ec QmakeProject: Replace applicationProFilePaths by idsForNodes
Change-Id: Ie10e8cb93f26eb2087272646668fafd480b0208d
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-06-16 10:30:57 +02:00
Eike Ziller
2786250c17 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/shared/qbs

Change-Id: Iba59e41db72e2afdf594f1f7003215d7d8d1e6d3
2014-06-13 10:51:51 +02:00
Daniel Teske
241d3a1ef6 QmakeProject: Rework allProFiles()
Change-Id: I49309565368fb8e00dd5a67c0e3ac77392924c75
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-06-12 12:56:48 +02:00
Eike Ziller
8496dad5d7 QMake: Fix missing qrc files in locator/search/...
The QMake project didn't put them into files() anymore since qrc nodes
where made folders.

Change-Id: I8e9354699cfccc4fdd4f5ce39baa30a9d61ce051
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-06-06 16:01:19 +02:00
Daniel Teske
7e8a945e6e Html5Wizard: Remove it
This wizard is from a different era. Nowadays webkit is on the way
towards deprecation and the replacement isn't ready yet.

Change-Id: Ifac9a42463562fefaa4a33eb7be2a09e0d8af1aa
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-05-27 10:04:41 +02:00
Tobias Hunger
dc61b989ac Project: Use Utils::FileName as return type for projectDirectory(...)
Change-Id: I3ea10aa204b1ea41702edab09884b416cd6d9e06
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-05-06 11:48:10 +02:00
Tobias Hunger
0814cc112a Remove some needless ProjectExplorer::
... and use ProjectExplorerPlugin::instance() directly in some places
where a variable was defined for it and used exactly once.

No code change.

Change-Id: I095fc80ac29f717eaabf13afa90c3bf6d9daf90a
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-05-06 11:31:04 +02:00
Tobias Hunger
8d5e4b32a8 Project: Use Utils::FileName as return type for projectFilePath()
Change-Id: If304d5e95cd9ac714100abaae35d60e3e1050eb2
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-05-06 11:30:45 +02:00
Eike Ziller
063b95d970 Use more descriptive progress bar titles
Change-Id: I70450a2aa675d69f820de48dd75909f36051efe0
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-04-28 14:32:25 +02:00
Christian Kandeler
eccc1198d6 Use double quotes instead of single quotes as per our guidelines.
Change-Id: Ib608bb49e26781aef1914085a5d801fcdcd5eb56
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-04-22 10:06:40 +02:00
Daniel Teske
920127933b QMakeProject: Fix inconsistent isAbsolutePath
The QMakeEvaluator uses it's own more accurate version of
isAbsolutePath. If we pass in a path that qt thinks is
absolute, e.g. "C:dev", but the qmake evaluator disagrees,
creator crashes. Import these functions from the qmake
evaluator into Utils::FileUtils and use them to prepare
the builddirectory.

Task-number: QTCREATORBUG-12034
Change-Id: Ida28688558f3186db25e3ab73bd39cabc91c1ff0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
2014-04-16 11:14:09 +02:00
hjk
b3110de645 QmakeProject: Some header cleanup
Change-Id: I728e02f7c9e57186013e1696b4c1939186bfd578
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-04-08 18:03:57 +02:00
Eike Ziller
b687658663 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/cpptools/cppcompletion_test.cpp

Change-Id: Ic5e75b3ef164de664a1449ffa8579beaf5b02521
2014-04-08 11:18:40 +02:00
Fawzi Mohamed
19d464dd72 qmakeproject: fix crash when qtVersion is null
While it is not possible to create a qmake kit without qt, the qt
version might become invalid and be removed.

Change-Id: I99484c86d731ab5a47bff9bb1958158504617004
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-04-03 11:44:16 +02:00
Eike Ziller
d68f14ad5b Merge remote-tracking branch 'origin/3.1' 2014-04-03 10:16:14 +02:00
Fawzi Mohamed
41327df2a9 ios: override spec for ios
On ios qmake is called recursively and the second call with a different
spec (macx-xcode instead of macx-ios-clang) which contains the
correct build settings (includes, compiler flags) as ios builds with
xcode.
macx-ios-clang just creates supporting makefiles, and to avoid being
slow does not evaluate everything, and contains misleading information
(that is never used), whereas macx-xcode correctly evaluates the
the variables and generates the xcodeproject that is actually used to
build the application.

It is important to override only for the creator evaluator, and not
the qmake buildstep used to build the app (as we use the makefiles).

Task-number: QTCREATORBUG-11908
Change-Id: I06d569de16f934fca5e104a8da727a3557a4c2e3
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-02 15:36:21 +02:00
Eike Ziller
cab8e4aa03 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/qtsupport/qtversionmanager.cpp
	src/shared/qbs

Change-Id: If7a93fb018799fe6ada76e79c24ab5b43dfa6fc2
2014-04-02 13:24:34 +02:00
Daniel Teske
6bd2a47396 QMakeProject: Ensure that toolchain paths are last
Task-number: QTCREATORBUG-3959
Change-Id: Icba8cabe573557356aa634bb162367ce5b8bd582
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-03-31 16:29:53 +02:00
Oswald Buddenhagen
868428cc63 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	qbs/imports/QtcTool.qbs
	src/plugins/git/giteditor.cpp
	src/plugins/qmldesigner/qmldesignerplugin.cpp

Change-Id: Icafd32f713effb1479480a0d1f61a01e429fbec0
2014-03-18 14:46:29 +01:00
hjk
3b84a6dc88 Use ICore::dialogParent for message boxes without parent so far
Change-Id: I2ee35796b2c041e6ea2ae6bd677e10167451d1b8
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-12 12:06:10 +01:00
Eike Ziller
5dd8d7cd9c Editors: Move id() from editor to document.
Change-Id: Ib81076842ab1c16832224790194b001206404d64
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-03-05 16:27:52 +01:00
Orgad Shaneh
d6d8937625 QmakeProject: Remove unneeded namespace qualification
Change-Id: I82b00db276149a146a53dd3a22da3d9a5aad498f
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-02-26 13:23:08 +01:00
Fawzi Mohamed
d24cb60d48 qml: moving most of ModelManager logic to ModelManageInterface
Currently ModelManager contains lot logic, but as it sits in QmlJSTools
it is not possible to use it in standalone tests.
Moving most of the logic to ModelManagerInterface (and cleanup)
to allow better testing, and refactoring.
This introduces a dependency of the qmljs lib on the cplusplus lib
Also a (small) part of the CppTool::ModelManagerInterface has been
moved to CPlusPlus::CppModelManagerBase to remove the dependency on
CppTools to gather the Qml types exposed from C++.

Change-Id: Icad7fe96dfd0f1a2b1058d82bd98c77c40aa5e9d
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-19 21:18:58 +01:00
Daniel Teske
d2a34683a0 QmakeProject: remove duplicates in ::files()
Task-number: QTCREATORBUG-11292
Change-Id: I48a535303d916cdae22ea2a0cb62ef347b4ccf88
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-01-29 15:52:42 +01:00
Orgad Shaneh
2c5c1605b8 QmakeProject: Support absolute path for TARGET
Change-Id: I2b90e0581269b76e27edbe2f28dfda75bb4aa0e5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-01-16 17:11:20 +01:00
Eike Ziller
236ea9efb9 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	share/qtcreator/debugger/dumper.cpp
	share/qtcreator/debugger/dumper_p.h
	share/qtcreator/debugger/test/main.cpp
	src/plugins/debugger/gdb/classicgdbengine.cpp
	src/plugins/debugger/gdb/pythongdbengine.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.h
	src/plugins/debugger/lldblib/guest/main.cpp
	src/plugins/debugger/lldblib/ipcengineguest.cpp
	src/plugins/debugger/lldblib/ipcengineguest.h
	src/plugins/debugger/lldblib/ipcenginehost.cpp
	src/plugins/debugger/lldblib/ipcenginehost.h
	src/plugins/debugger/lldblib/lldbenginehost.cpp
	src/plugins/debugger/lldblib/lldboptionspage.cpp
	src/plugins/qbsprojectmanager/qbsstep.cpp
	src/plugins/qbsprojectmanager/qbsstep.h
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h
	src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp
	src/plugins/qnx/blackberrycheckdevmodestep.cpp
	src/plugins/qtsupport/debugginghelper.cpp

Change-Id: Ie9fd0a885fb6264a6a8a72daee071b75bcbd2e9d
2014-01-08 11:01:06 +01:00
Robert Loehning
746c5d8863 Incremented year in copyright info
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-08 08:29:47 +01:00
Erik Verbruggen
ea1a92484a C++: split defines into project-defined and toolchain-defined.
So we can ignore possibly problematic toolchain-defines, while can still
unconditionally apply project-defines.

Change-Id: I7cb96f35a963d080011fe888ef71bfc098dd33ef
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-10 11:42:41 +01:00
Eike Ziller
0e4de8c108 Merge remote-tracking branch 'origin/3.0' 2013-11-29 11:50:41 +01:00
hjk
692309849f ProjectManager: Use platform slashes in dialog
Change-Id: If9a3248cb94cf8399865750107116529bb747111
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-11-27 13:38:07 +01:00
Eike Ziller
4538ccb46c Merge remote-tracking branch 'origin/3.0'
Conflicts:
	share/qtcreator/debugger/gdbbridge.py

Change-Id: I32d8158c475f927b50ef06fde9ab8189ebdbcbbc
2013-11-15 10:26:57 +01:00
jkobus
c31b03f1d0 Restructure qtquick templates, read them dynamically
Change-Id: I11dfac8ce8d6b1e68df0151516cdc03247fffe3a
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-11-11 15:27:35 +01:00
Eike Ziller
49b7e95e7f Merge remote-tracking branch 'origin/3.0'
Conflicts:
	qtcreator.pri
	qtcreator.qbs

Change-Id: I91b9ceba836d01086e9ccdb4499436d17195b729
2013-11-06 14:02:08 +01:00
Daniel Teske
623fc1e902 QmakeProject: Fix crash
There's no target if the project is in the parsing without configuration
state.

Change-Id: Id21e2ded5b634253267e956accc27715e6562941
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-11-04 17:03:05 +01:00
David Schulz
ddcb258559 ProjectManager: Update deploy step on project load.
Change-Id: Ib1247e1389284f793d4803871cfcd174aca5facd
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-11-04 13:20:39 +01:00