- PVSM.RU - https://www.pvsm.ru -
Приветствую, друзья! В начале февраля была анонсирована IDE Qt Creator 2.7 beta, и вот 21 марта был представлен релиз 2.7.0.
Итак, из заметных изменений в новом релизе были:
Множество мелких изменений таких как поддержка слияния для git плагина, улучшения в отладчике, но в целом релиз не революционный, а эволюционный.
Знаете, я не буду подробно расписывать все изменения, их можно прочитать в пресс-релизе [1].
Есть одно для меня заметное новшество — появление в master ветке поддержки QBS плагина. О системе qbs я писал ранее на хабре [2], но некоторые читатели могли подумать что разработка зависла, или нет значительных результатов — постараюсь в данной статье немного развеять туман.
(Примечание: пока не вышел релиз, были проблемы со сборокой, и со стабильностью под Windows).
Как собрать? Если хочется вручную, конечно, а не пользоваться готовой сборкой. Я просто сокращу время вашего чтения, не буду писать команды для git.
qmake -r qbs.pro && make
Если все нормально не прошло, ошибки компиляции (бывает!), то два пути:
Кроме того, самый быстрый путь, это просто скачать бинарную сборку и включить плагин QBS Project Manager в настройках.
Они более чем скромны. Можно собрать проект. А можно и не собирать!

А еще можно пересканировать qbs файл (например, были добавлены файлы, а список файлов задан маской) для перестроения дерева. Естественно, остаётся возможность запустить под отладчиком, как и qmake проект.
Как проходит сама сборка: как и с qmake, в Выводе сборки (Compile Output ) мы видим вывод qbs. В большинстве своем он весьма лаконичен, пока не возникают ошибки или предупреждения. Сборку можно прервать. И слава Богу что такая возможность уже есть)
15:32:58: Running steps for project qtcreator... compiling tcpportsgatherer.cpp compiling textfileformat.cpp compiling treewidgetcolumnstretcher.cpp compiling uncommentselection.cpp compiling unixutils.cpp moc wizard.cpp moc wizard.h compiling faketooltip.cpp moc faketooltip.h moc tips.h compiling tipcontents.cpp moc tooltip.h compiling tooltip.cpp The following products could not be built: QmlJSEditor, GLSLEditor, Git, CodePaster, Perforce, ClearCase, Android, Welcome, Core, Aggregation, Find, Debugger, RemoteLinux, styleplugin, QtcSsh, AutotoolsProjectManager, FakeVim, CMakeProjectManager, ImageViewer, QmlJSTools, Qnx, Mercurial, CppTools, GenericProjectManager, PythonEditor, QmlProjectManager, zeroconf, UpdateInfo, Bookmarks, LanguageUtils, BinEditor, Subversion, QtSupport, Designer, ExtensionSystem, Utils, cpaster, qtcreator_process_stub, TaskList, Macros, GLSL, QmlDebug, ProjectExplorer, ptracepreload, app_version_header, DiffEditor, Help, qtcreator, Todo, Bazaar, TextEditor, ClassView, CPlusPlus, CVS, Qt4ProjectManager, ResourceEditor, translations, QmlJS, VcsBase, Madde, qtpromaker, CppEditor, QmlEditorWidgets, QmlProfiler, HelloWorld, Valgrind, AnalyzerBase, sdktool, Locator. Build was canceled due to user request. 15:33:05: Canceled build/deployment. 15:33:05: Elapsed time: 00:05.
Естественно, если находятся ошибки, то можно их увидеть в виджете ошибок сборки. Есть огрехи с разбором (ошибки выводятся дважды фактически), и с иконкой предупреждений (выводятся как ошибки). Надеюсь, это поправят.
Кроме того, есть возможность из контекстного меню пересобрать один конкретный файл. По моему ощущению, эта возможность пока как-то нестабильно себя ведет (закономерностей в ее поведении не заметил, но иногда она даже работает).
Загрузив qbs проект для QtCreator, мне удалось собрать его за 13 минут (что раза в два — примерно- быстрее чем qmake+make).
В закладке Запуск (Run) есть базовая настройка этапов для сборки под qbs. При попытке добавить свой вариант, QtC вылетел. Печально.

import qbs.base 1.0
Application {
type: 'application'
name: 'HelloWorld'
Depends { name: 'cpp' }
cpp.defines: ['SOMETHING']
//files: '../patternfiles/././.*\..\patternfiles/*s*r*c*\foo.*'
Group {
files: 'src/foo.*'
excludeFiles: 'src/foo.2.cpp'
recursive: true
}
Group {
cpp.defines: outer.concat(['HAVE_MAIN_CPP', cpp.debugInformation ? '_DEBUG' : '_RELEASE'])
prefix: "src/"
files: 'main.*'
}
}
Что могу еще добавить? Мне не удалось протестировать даже и половины возможностей QBS, но могу сказать что организация кросс-платформенных сборок (под arm тулчейн) оказалась весьма удобной и приятной.
В заключении остается лишь отметить, что не смотря на бурное и взрывное развитие, QBS все еще находится в стадии активной разработки, и все еще может ломаться совместимость (до 1.0 релиза, который хорошо если в этом году появится).
Так же можно ознакомиться с мой прошлой статьей о QBS [2].
Автор: mapron
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/30212
Ссылки в тексте:
[1] пресс-релизе: http://blog.qt.digia.com/blog/2013/03/21/qt-creator-2-7-0-released/
[2] ранее на хабре: http://habrahabr.ru/post/144127/
[3] qt.gitorious.org/qt-labs/qbs/trees/master: http://qt.gitorious.org/qt-labs/qbs/trees/master
[4] qt.gitorious.org/qt-creator/qt-creator/trees/master/: http://qt.gitorious.org/qt-creator/qt-creator/trees/master/
[5] Источник: http://habrahabr.ru/post/171405/
Нажмите здесь для печати.