Для старых версий Qt Creator, в том числе и 2.0.1, см. пост "Пишем плагин для Qt Creator - часть 1". Этот пост актуален для Qt Creator 2.1.
Что нужно для сборки.
Я использовал библиотеку Qt 4.7.0 для MSVC. Библиотеку я не переконфигурировал. Я пробовал Qt 4.7.1, но с ней Qt Creator не линкуется.
Я собирал плагин в Qt Creator 2.1 beta 2. Также нужны его исходники, поскольку сгенерированный плагин не совместим со старыми версиями Creator'а.
Создаем новый плагин.
Во-первых, надо собрать дебаг билд Qt Creator из исходников. Используем shadow build:
Проект с построенным Qt Creator можно закрывать.
Во-вторых, создаем новый плагин. В качестве билд-директории будем использовать ту же билд директорию, что и для самого Qt Creator, иначе плагин не соберется. Директорию с исходниками плагина лучше создавать на том же уровне (параллельно) что и билд директория с исходниками Qt Creator, иначе Creator будет жаловаться, хотя и не фатально.
Что получили.
Мастер нового плагина сгенерировал файл проекта, в котором прописаны несколько вещей:
- PROVIDER (определяет директорию, где появится плагин в lib\qtcreator\plugins, обычно это Nokia)
- QTCREATOR_SOURCES (путь к исходникам Qt Creator)
- IDE_BUILD_TREE (билд директория)
- LIBS (путь к библиотекам)
и хорошо знакомые
- TARGET (= DoNothing)
- TEMPLATE (= lib)
- SOURCES
- HEADERS
- OTHER_FILES
Также созданы файлы:
- DoNothing.pluginspec
- donothing.cpp
- donothing.h
- donothing_global.h
Я здесь содержимое этих файлов приводить не буду. Pluginspec не изменился. Сишник и хедер определяют минимальные методы плагина и реализуют новый пункт меню Tools.
Сборка.
В Build Settings плагина DoNothing указывем нужную билд-директорию.
Запускаем только что собранный Qt Creator (можно из самого Qt Creator, если не закрыли). Выбираем пункт меню Help->About Plugins... Находим в списке наш плагин:
Также, в меню Tools добавился пункт DoNothing->DoNothing action:
Что нужно для отладки.
Во-первых, проверяем Run Settings плагина: Run Configuration- запускать только что собранный Qt Creator, исполняемый файл- он же, Working directory- $BUILDDIR:
Во-вторых, открываем donothing.cpp и ставим где-нибудь точку останова. Например, но выходе из DoNothingImpl::initialize().
В-третьих, запускаем отладку плагина. Я получил сообщение, что нету дебаг хелперов. Жмем Continue Aniway. Qt Creator стартует и останавливается на нашем бряке:
Не понял только зачем делать исходники плагина на том же уровне вложенности что и исходники креатора. У меня лежат на разных и не ругается. Можно поподробнее об этом?
ОтветитьУдалитьСпасибо, что нашли! Исправил на билд директорию.
ОтветитьУдалитьПри чем здесь билдовая директория тоже не понял. Например у меня креатор лежит /home/tass/Work/QtTools/QtCreator/qt-creator, его билд /home/tass/Work/QtTools/QtCreator/qt-creator/build, плагин лежит в /home/tass/Work/Personal/qt-creator-xml-tree-plugin и вроде никто нигде не ругается :)
ОтветитьУдалитьПри чем она здесь- я сам не понимаю, не должно это ни на что повлиять. Однако же, вот что происходит. Я вчера попробовал создать проект в директории d:\Projects\NewProject, билд креатора лежит в d:\Projects\_QtC\qt-creator-2.1.beta2-build (или как-то так, не помню точное название последней директории). В общем, исходники на один уровень выше. В итоге, когда указываю директорию для билда плагина, получаю сообщение "Qmake does not support build directories below the source directory" прямо под путем к билд директории. Такое же сообщение- когда плагин компилирую. Может, оно только на винде проявляется, а может, и нет. Похоже, правда, что это ни на что не влияет. Но я на всякий случай директории организовал так, чтобы никто не ругался.
ОтветитьУдалить