Commit Graph

150 Commits

Author SHA1 Message Date
Eike Ziller
a47fbb8309 Merge remote-tracking branch 'origin/3.3'
Conflicts:
	src/plugins/coreplugin/coreplugin.cpp
	src/plugins/coreplugin/themesettingswidget.cpp
	src/plugins/qbsprojectmanager/qbsprojectmanager.cpp
	src/plugins/qbsprojectmanager/qbsprojectmanager.h
	src/plugins/qmlprofiler/qml/Overview.js
	src/shared/qbs

Change-Id: Ibe92c166fc5bfbcb4d6964e50ca7298d8459d60e
2014-11-24 15:43:48 +01:00
Nikolai Kosjar
a21dda3360 QbsProject: Make initial CppTools::ProjectInfo valid
This fixes triggering the QTC_ASSERT in updateCppCompilerCallData() if
the user opens and builds the following qbs project:

    import qbs
    Product {}

Conceptually the initial ProjectInfo should stay invalid, but this would
result in a bigger / more risky change. Will be addressed in master
properly.

Change-Id: I74d3374b438884f38947f551915a80ec836a85c1
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2014-11-20 14:28:53 +01:00
Christian Kandeler
275eff97d9 QbsProjectManager: Fix infinite loop on per-product build.
- Setting the QFuture result is not enough, we also need to emit the
  finished() signal.
- Never fail silently; use soft asserts for things that shouldn't happen
  and compile pane output for things that can.

Task-number: QBS-705
Change-Id: I4dad18c2ad573a92f2a0c5aa92b596851c56541e
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2014-11-19 13:11:23 +01:00
Tobias Hunger
c4fb13a652 Qbs: Make pass on cpp.defines correctly to the C++ code model
When passing -DFOO to the compiler it will treat that as similar
to "#define FOO 1". Do the same when passing FOO on to the code
model.

Task-number: QTCREATORBUG-13384
Change-Id: I236d4731435e0559f75a3435dad9a8d935d42042
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2014-11-13 16:55:13 +01:00
Eike Ziller
2d03b59f53 Merge remote-tracking branch 'origin/3.3'
Change-Id: I0ab4982e229d475b8e3575414b4bebbfea07498d
2014-11-12 12:55:10 +01:00
Christian Kandeler
081bf51848 QbsProjectManager: More fine-grained profile setup.
Setting up a qbs profile, particularly for Qt, can take a measurable
amount of time, so we should not do bulk changes via the kitsChanged()
signal. Instead:
    - For the initial kit loading, delay the profile setup until
      the kit is needed for the first time, i.e. the user attaches it
      to a project.
    - Handle adding, removing and updating a kit separately; in
      particular, do not do anything to other kits.

Change-Id: If09d3c40b21e9a1356dc96089b92a60186a9bcdb
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-11-11 11:59:57 +01:00
Christian Kandeler
5d8c0f9c88 Update qbs submodule.
To HEAD of master branch.
Also do the necessary adaptations.

Change-Id: I51830dee41341c9be294caf69fdb0459ed8c8bfe
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-11-07 14:23:46 +01:00
Nikolai Kosjar
ba60b512e5 QbsProject: Cancel (last) C++ indexer before new code model update
...otherwise we might end up having multiple indexer running for
different (build) configurations.

Reproduce e.g. with:
 (1) Open a project (adds "Parsing C/C++ files" progress notification)
 (2) Trigger build of project
 (3) While it is still building, switch between e.g. Release and Debug
     build configuration
 (4) Once the build is finished, a new code model update is pushed but
     the indexer for the old configuration might still run

Change-Id: I685d0b3eeeb43ba5923c6af0e6b16aee6609419b
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
2014-11-07 10:28:10 +01:00
Nikolai Kosjar
1fcba8df5f QbsProject: Provide compiler call data
...so that analyzers can make use of it.

Change-Id: I9694535f02f631cac266c26b4f4c973a06c6c899
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
2014-11-07 10:27:25 +01:00
hjk
edc08ba2bc Move uses of ProjectMacroExpander closer to build configuration
All static functions, can live closer to related code.

Change-Id: I54c5680256c78f1d09b4bee3e8843b2f4350b75a
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2014-10-22 10:21:46 +02:00
Christian Kandeler
e50b75eb66 QbsProjectManager: Support UI-based file renaming.
Task-number: QBS-652
Change-Id: Iaaf767871b1f546814acec62330e2c8d732b8d75
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-10-17 11:26:15 +02:00
hjk
ef563d8085 MacroExpander: Fall back to global expander
... and use that all over the place.

Change-Id: Ie6e0ed0f0d9eaba9b4466761e6b455f33a905086
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2014-10-16 16:32:58 +02:00
Eike Ziller
ea27143239 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	src/libs/utils/ipaddresslineedit.cpp
	src/libs/utils/logging.h
	src/plugins/analyzerbase/AnalyzerBase.pluginspec.in
	src/plugins/android/Android.pluginspec.in
	src/plugins/android/androiddeploystep.cpp
	src/plugins/android/androiddeploystep.h
	src/plugins/android/androiddeploystepfactory.cpp
	src/plugins/android/androiddeploystepwidget.cpp
	src/plugins/android/androidpackagecreationfactory.cpp
	src/plugins/android/androidpackagecreationstep.cpp
	src/plugins/android/androidpackagecreationstep.h
	src/plugins/android/androidpackagecreationwidget.cpp
	src/plugins/android/androidpackagecreationwidget.h
	src/plugins/android/javafilewizard.cpp
	src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
	src/plugins/baremetal/BareMetal.pluginspec.in
	src/plugins/bazaar/Bazaar.pluginspec.in
	src/plugins/beautifier/Beautifier.pluginspec.in
	src/plugins/bineditor/BinEditor.pluginspec.in
	src/plugins/bookmarks/Bookmarks.pluginspec.in
	src/plugins/clangcodemodel/ClangCodeModel.pluginspec.in
	src/plugins/clangcodemodel/clanghighlightingsupport.cpp
	src/plugins/clangcodemodel/clangsymbolsearcher.cpp
	src/plugins/classview/ClassView.pluginspec.in
	src/plugins/clearcase/ClearCase.pluginspec.in
	src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec.in
	src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
	src/plugins/cmakeprojectmanager/cmakehighlighter.cpp
	src/plugins/coreplugin/Core.pluginspec.in
	src/plugins/cpaster/CodePaster.pluginspec.in
	src/plugins/cppeditor/CppEditor.pluginspec.in
	src/plugins/cppeditor/cppfilewizard.cpp
	src/plugins/cpptools/CppTools.pluginspec.in
	src/plugins/cpptools/cpphighlightingsupportinternal.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.h
	src/plugins/cvs/CVS.pluginspec.in
	src/plugins/debugger/Debugger.pluginspec.in
	src/plugins/designer/Designer.pluginspec.in
	src/plugins/diffeditor/DiffEditor.pluginspec.in
	src/plugins/emacskeys/EmacsKeys.pluginspec.in
	src/plugins/fakevim/FakeVim.pluginspec.in
	src/plugins/genericprojectmanager/GenericProjectManager.pluginspec.in
	src/plugins/git/Git.pluginspec.in
	src/plugins/git/gitorious/gitorious.cpp
	src/plugins/git/gitorious/gitorious.h
	src/plugins/git/gitorious/gitoriousclonewizard.cpp
	src/plugins/git/gitorious/gitorioushostwidget.cpp
	src/plugins/git/gitorious/gitorioushostwidget.h
	src/plugins/git/gitorious/gitorioushostwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.h
	src/plugins/git/gitorious/gitoriousprojectwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwizardpage.h
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.cpp
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.h
	src/plugins/glsleditor/GLSLEditor.pluginspec.in
	src/plugins/glsleditor/glsleditorfactory.cpp
	src/plugins/glsleditor/glslfilewizard.cpp
	src/plugins/helloworld/HelloWorld.pluginspec.in
	src/plugins/help/Help.pluginspec.in
	src/plugins/imageviewer/ImageViewer.pluginspec.in
	src/plugins/ios/Ios.pluginspec.in
	src/plugins/macros/Macros.pluginspec.in
	src/plugins/mercurial/Mercurial.pluginspec.in
	src/plugins/perforce/Perforce.pluginspec.in
	src/plugins/projectexplorer/ProjectExplorer.pluginspec.in
	src/plugins/pythoneditor/PythonEditor.pluginspec.in
	src/plugins/pythoneditor/pythoneditorwidget.cpp
	src/plugins/pythoneditor/wizard/pythonfilewizard.cpp
	src/plugins/qbsprojectmanager/QbsProjectManager.pluginspec.in
	src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
	src/plugins/qmakeprojectmanager/QmakeProjectManager.pluginspec.in
	src/plugins/qmakeprojectmanager/profileeditorfactory.cpp
	src/plugins/qmldesigner/QmlDesigner.pluginspec.in
	src/plugins/qmljseditor/QmlJSEditor.pluginspec.in
	src/plugins/qmljseditor/qmljseditorfactory.cpp
	src/plugins/qmljstools/QmlJSTools.pluginspec.in
	src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
	src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
	src/plugins/qnx/Qnx.pluginspec.in
	src/plugins/qtsupport/QtSupport.pluginspec.in
	src/plugins/remotelinux/RemoteLinux.pluginspec.in
	src/plugins/resourceeditor/ResourceEditor.pluginspec.in
	src/plugins/resourceeditor/resourcewizard.h
	src/plugins/subversion/Subversion.pluginspec.in
	src/plugins/tasklist/TaskList.pluginspec.in
	src/plugins/texteditor/TextEditor.pluginspec.in
	src/plugins/texteditor/basetexteditor_p.h
	src/plugins/texteditor/basetextmark.cpp
	src/plugins/texteditor/codeassist/basicproposalitemlistmodel.h
	src/plugins/texteditor/codeassist/defaultassistinterface.h
	src/plugins/texteditor/codeassist/iassistproposalitem.cpp
	src/plugins/texteditor/itexteditor.cpp
	src/plugins/texteditor/itexteditor.h
	src/plugins/texteditor/itextmark.cpp
	src/plugins/texteditor/plaintexteditor.cpp
	src/plugins/texteditor/plaintexteditor.h
	src/plugins/texteditor/texteditoractionhandler.cpp
	src/plugins/todo/Todo.pluginspec.in
	src/plugins/updateinfo/UpdateInfo.pluginspec.in
	src/plugins/valgrind/Valgrind.pluginspec.in
	src/plugins/vcsbase/VcsBase.pluginspec.in
	src/plugins/welcome/Welcome.pluginspec.in
	src/plugins/winrt/WinRt.pluginspec.in
	tests/auto/debugger/temporarydir.h

Change-Id: I254af8be8119fe9855287909e17d4b8ca9d2fc2f
2014-10-14 15:36:16 +02:00
Eike Ziller
8295b503be License update
Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-09 11:41:44 +02:00
Christian Kandeler
222fbdb58b QbsProjectManager: Get rid of some redirections when accessing members.
Change-Id: I3f2c7717179bf1654c6bdafd2088f5384287f90e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-09-25 13:12:15 +02:00
Christian Kandeler
38320b15f5 QbsProjectManager: Take product profiles into account.
- Identify products by the name/profile tuple instead of just the name.
- If the product's profile differs from that of the overall
project, add it to the visual representation.

Change-Id: I4a89db60911277977458370157e435472bbe428f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-09-25 13:11:33 +02:00
hjk
b26a17f30d CppTools: Change CppModelManager implementation pattern
Replace the CppModelManagerInterface/derived CppModelManager
combo by a more common CppModelManager/CppModelManagerPrivate
pimpl pattern.

Change-Id: Ia4582845ed94d5ef60b8571bab9b2260c6290287
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-09-19 13:17:55 +02:00
Eike Ziller
914adeab82 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp
	src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp

Change-Id: I1627f6aa98a442413f8b08b579ecaf9647dc887b
2014-09-16 15:17:21 +02:00
Orgad Shaneh
c0c324d75c QbsPM: Clear progress bar on project unload
Change-Id: I4f695a74032aa9f1e1b4d45f17ab8c4170717297
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
2014-09-15 12:40:41 +02:00
Christian Kandeler
4cfaeb8b51 QbsProjectManager: Fix crash when calling QbsProject::files().
We can't do that during parsing, as qbs::Project::buildSystemFiles()
might run into a race condition.

Change-Id: Iae3fd3000fdc71fec50c82d50fb3b4e3888351bc
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-09-15 11:45:16 +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
Eike Ziller
49db3a450a Merge remote-tracking branch 'origin/3.2'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/coreplugin/editormanager/editormanager.cpp
	src/plugins/cppeditor/cppeditor.cpp
	src/plugins/remotelinux/remotelinuxdebugsupport.cpp
	src/plugins/texteditor/basetexteditor.cpp

Change-Id: I0da7c1cf2506b12d0563795aa8177fc45e97050f
2014-09-03 16:08:02 +02:00
Thomas Epting
9d95afc803 QbsProjectManager: Write enable project files before adding/removing
Prevent failures in situations where Qbs project files are still write
protected, like e.g. in Perforce VCS.

Change-Id: I2828546adcc314b7c6b0b6720e1cf96733d62fa5
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
2014-08-26 14:13:25 +02:00
Erik Verbruggen
2fa15f221f QbsProject: 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: If8a64895847806677d5cd51344ae774313798e00
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-25 12:55:24 +02:00
Christian Kandeler
da4c7b2a81 QbsProjectManager: Don't leak the "Reading project" progress bar.
If a qbs project gets closed (e.g. due to a session switch) while the
project is being loaded, the corresponding QFuture does not get deleted
and the progress bar will be around forever. This patch fixes that.
Note: The project resolving by qbs was already correctly canceled; this
is about the visual effect only.

Change-Id: If00aed949505088cfdb87d08e26f3b62ccea5fd1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-08-22 11:08:06 +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
Eike Ziller
d9d0aba1c4 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/coreplugin/editormanager/editormanager.cpp
	src/plugins/projectexplorer/editorconfiguration.cpp
	src/plugins/projectexplorer/projectfilewizardextension.cpp
	src/plugins/qmakeandroidsupport/createandroidmanifestwizard.cpp

Change-Id: I8de0f6fcdd8d214fbc14e79f74cb0206e6e2c6c1
2014-08-15 16:14:34 +02:00
Christian Kandeler
03b6e23d90 QbsProjectManager: Make sure run configs are available before a build.
This already works for Desktop run configurations, because they get
special treatment for historical reasons. But it does not currently work
for targets such as RemoteLinux.

Change-Id: Iba5191538314146909567bc7b5993dcc0b9d21cd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-08-07 15:57:47 +02:00
Oswald Buddenhagen
f3a61e8bf7 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/android/androidglobal.h

Change-Id: I3367bf2ea47c088989175dddeed2210294346f4c
2014-08-05 14:24:23 +02:00
Christian Kandeler
f488c10c5a QbsProjectManager: Fix project node operations.
The qbsProjectData() member function always returned the top-level
project data, which messed up a couple of things, for instance
"build sub-projects" and the node tree updates.
Instead, return the project data corresponding to the node.

Change-Id: If40c441c62334f0069a5fe3cb4873cf973baf135
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-08-01 16:30:00 +02:00
Christian Kandeler
fb09f5cc01 QbsProjectManager: Re-retrieve project data after build.
This fixes the bug that the "run" action fails if the project has not
been built before (because the path to the executable is still unknown
after the build due to the missing project data update).

Change-Id: I953cbb85051a1de78fcb0490abf58ebc9fcec6e7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-28 12:00:25 +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
Christian Kandeler
cf9d12ed41 QbsProjectManager: Do not offer to add and remove files during a build.
The build graph is locked then. Disabling the action in the first place
is nicer than letting the respective qbs API call fail.

Change-Id: Icfb89b454a240253c9ddc7681b452d06ff0393dd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-24 14:33:58 +02:00
Tobias Hunger
75ff5062d6 Qbs: Read systemIncludePath and make them available to the code model
Change-Id: Ie16501a78e95f9c50631e5af8e9e8857dfd65b2f
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-07-24 10:24:07 +02:00
Tobias Hunger
37f92acccb Qbs: Make qbs build system files accessible to Locator
Change-Id: I0bdfadbc24b38f86ad5ec668c44f7fe18b7619fe
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
2014-07-22 17:44:12 +02:00
Christian Kandeler
f0b58a22ca QbsProjectManager: Clean-ups in QbsProject class.
- Remove unneeded forward declarations (the header file is included
already).
- Move QVariantMap include from header to cpp file.
- Remove pointless "const" in front of function return type.
- In projectData(), return the stored value instead of fetching it again
from the project.

Change-Id: I9c8f4e8eaea070833953cd4d65e3452bae37998d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-22 11:22:08 +02:00
Christian Kandeler
69649be5fc QbsProjectManager: No reparse after programmatic project file changes.
qbs knows the effect of adding and removing files. There is no need to
set up the project from scratch.

Change-Id: I8938c7cfb3e3ac2deb3fb0d2175f447391a669cb
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-21 13:08:36 +02:00
Christian Kandeler
e82a47e5af QbsProjectManager: No more "forced" vs "non-forced" parsing.
This differentiation complicates the code and duplicates checks
already done in qbs.
Just let the library reparse the project; if it turns out that nothing
has to be done, then the operation will be fast.

Change-Id: Ib6406f254e51541c69c948f275fff7877b65b4bd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-17 13:11:02 +02:00
Christian Kandeler
35940f16e4 QbsProjectManager: Only update project nodes etc if necessary.
That is, if qbs::Project::projectData() has changed. There are still
some false positives left (e.g. the project nodes will also update if
only the file paths of executables have changed), but we can deal with
those later.

Change-Id: Ifa18903aba41c21769bfe4cd0e4f6004f1a94f11
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-17 13:10:45 +02:00
Christian Kandeler
e639455936 QbsProjectManager: Reparse project before building.
Otherwise, if "save before build" is enabled and the user presses Ctrl+B
with unsaved changes to a project file, these would get ignored due to
the delay (and also if the delay were not there, because the file system
watchers trigger later than the "Build" action).
If there are no actual changes to any build file, the overhead caused by
this operation consists of loading (and possibly storing) the build
graph file.

Task-number: QBS-596
Change-Id: I1f837cc0fcdc77a249b423834f4b6711f5c0bc87
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-16 14:05:38 +02:00
Christian Kandeler
20bfe889e9 QbsProjectManager: Fix handling of overlapping parse requests.
The current code simply asserts when a new parse request comes in while
parsing. However, that condition is easily triggered, for instance if a
project file is saved to disk during a parse operation. Such updates
currently have no effect at all (other than triggering an error
message).
Instead, we now cancel the old parse job and start a new one.

Change-Id: If2eeb93b85b5163dcea99785a0fc89a254d082db
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-14 11:23:46 +02:00
Christian Kandeler
473692aa23 QbsProjectManager: Do not reparse the project after every build.
While it is true that additional information about target
artifacts can appear during a build, this data is already
present in the qbs::Project object and can simply be retrieved.
No reparsing is necessary.
The exception is when reparsing was requested while the build
was going on. In that case, we really need to do it after
the build has finished.

Change-Id: Ief3797782ad0ca5651974d4b5d3d64e1199ca9a5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-11 15:05:32 +02:00
Christian Kandeler
853497fb4b QbsProjectManager: Sanitize QbsProjectNode.
The current code keeps an instance of QbsProject and of qbs::Project in
every project node, with them being null/invalid everywhere except for
the top-level node. Instead, introduce a dedicated class for the root
node and hold a QbsProject only there. The qbs::Project is held in
QbsProject now.
As a nice side effect, this also fixes QBS-644, presumably because the
dubious-looking use of projectNode() has been removed.

Task-number: QBS-644
Change-Id: I5d36806745b9d67879db6f48aa56bc97868e4f17
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-07-11 11:33:58 +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
Tobias Hunger
21cccaa1c9 Qbs: Move updating of files from a project to own method
Change-Id: I88b41ff450dac4e0c2e5a34e3332e559c1919e6e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-06-24 16:14:16 +02:00
Tobias Hunger
ce324b8d28 Qbs: Factor parsing code out of QbsProject
Change-Id: I9b86baf964252e3d155cce533c79ca7a9dc9b315
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
2014-06-20 13:02:33 +02:00
Tobias Hunger
e07ea93d89 Qbs: Simplify qbsmanager
Change-Id: I6755e28e1f75788203a0e734cd1b6dabd2308919
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-06-17 13:58:03 +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
7dfbb74d58 Qbs: Honor default build directory set up in Build & Run->General
Change-Id: I1e7d6cc97f2e8adb5956866205493d28d79887cb
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-05-02 11:54:30 +02:00