LINUX.ORG.RU

PPA для Qt Creator Git [master] + CMakeProjectManager2

 , , ,


0

2

Собрал PPA в котором время от времени буду выкладывать снапшоты Qt Creator из мастер-бранча (один фиг на двух машинах из исходников собираю). Плюс допиленный плагин CMakeProjectManager2

Сборка для Trusty/Mint 17.x

Пакетирование сделано таким образом, что бы была возможность собирать плагины для Qt Creator без пересборки оного (-dev пакет ставит в /usr/src/qtcreator-git то, что ищется в QTC_SOURCE, а в качестве QTC_BUILD указывается /opt/qtcreator-git).

PPA: https://launchpad.net/~adrozdoff/ archive/ubuntu/qtcreator-git

Для нового QtC нужен новый Qt, данный репозиторий рассчитывает на этот: https://launchpad.net/~beineri/ archive/ubuntu/opt-qt55-trusty

Установка:

sudo apt-add-repository ppa:beineri/opt-qt55-trusty
sudo apt-add-repository ppa:adrozdoff/qtcreator-git
sudo apt-get update
sudo apt-get install qtcreator-git qtcreator-git-plugin-cmake2

Пожелания/предложения по PPA можно писать тут. По плагину, прошу в https://github.com/h4tr3d/cmakeprojectmanager2/issues

Enjoy!

★★★★★

Ты кстати не пытался отправить этот плагин в Qt Creator?

Эх и когда же появится плагин, который напрямую будет работать с CMakeList.txt, а то сейчас ущербно: из CMakeLists.txt генерируется проектный файл другой IDE — Code::Blocks, т.е. Project.cbp, который потом самостоятельно парсится! При этом про поддержку самих *.cbp проектов в Qt Creator тактично забыли.

CLion так же в *.cbp парсит, не знаешь?

EXL ★★★★★
()

Почему просто не использовать официальный инсталлятор, установить куда-нибудь в ~/apps/Qt и обновлять это дело с помощью MaintenanceTool?

Deleted
()
Ответ на: комментарий от Deleted

Имхо, неплохо было бы, но что-то мне кажется, что делать достаточно универсальный бинарник, что бы работал на многих дистрибутивах, зело трудная задача. Плюс пока не курил в эту сторону - возможно когда нить появится. Но, к примеру, бинарные инсталлеры, свежие, и так есть у Qt Project, вот плагины с ними собирать сложно, это да.

Но и времени нет. Если кто поможет - не откажусь :)

h4tr3d ★★★★★
() автор топика
Последнее исправление: h4tr3d (всего исправлений: 1)
Ответ на: комментарий от EXL

Ты кстати не пытался отправить этот плагин в Qt Creator?

В своё время пытался, для меня ключевая фича - видеть все файлы в директории проекта, но что бы в индексе учавствовали только нужные, а оно идёт в разрез с видением основных разработчиков. Другие исправления я нормально через Gerrit засылаю (недавно несколько деградаций в BareMetal plugin исправил - теперь и на работе основной работать приятнее и удобнее стало) :)

Эх и когда же появится плагин, который напрямую будет работать с CMakeList.txt, а то сейчас ущербно: из CMakeLists.txt генерируется проектный файл другой IDE — Code::Blocks, т.е. Project.cbp, который потом самостоятельно парсится! При этом про поддержку самих *.cbp проектов в Qt Creator тактично забыли.

Сначала у меня были таки наполеоновские планы, хотя бы как это сделано в KDevelop /в readme про это есть, на корявом английском/. Дело закончилось на запуске парсера CMakeLists в изоляции несколько лет назад. Сейчас наработки потерялись, да и пока что-то особой для себя потребности не вижу. Плюс, одна команда пилила свой плагин /в рассылке пролетало/, но, не уверен, вроде и до конца не дошли и наработки заказчик зажал. Короче, много кто сетует на плохую поддержку CMake, но мало кто хочет/может взяться. А я ещё и не умею парсеры писать :)

CLion так же в *.cbp парсит, не знаешь?

нет, насколько я знаю, он напрямую работает. Но там, пока, других минусов много. Хотя рефакторинг там в стиле JetBrains - сказка. Пусть не без косяков, но вылижутся, отладятся, будет хорошо. Там ещё бич и пряник парсинг при помощи clang - хорошо разбирает, но тормозит /кстати экспериментальный плагин clang в QtC тоже тормозит - примерно одинаковая картина, но ещё и падает временами/

h4tr3d ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Аааа! Я больше для своего плагина сделал. Ну и меня вымораживает, что для того, что бы собрать любой третьесторонний плагин, нужно выкачивать сорцы QtC, да ещё и нужной версии. А тут я фундамент подготовил.

h4tr3d ★★★★★
() автор топика
Ответ на: комментарий от Stil

Спасибо! Я никогда не утверждал, что знаю английский. Но лучше коряво и кто подправить, чем, как китайцы, иероглифы фигачить :)

Раз уж пошло:

Main differents from

Так:
Main differences from ?

Project file list readed from file system instead

reads?

h4tr3d ★★★★★
() автор топика
Ответ на: комментарий от h4tr3d

Сначала у меня были таки наполеоновские планы, хотя бы как это сделано в KDevelop /в readme про это есть, на корявом английском/. Дело закончилось на запуске парсера CMakeLists в изоляции несколько лет назад.

Эх, такое-то распыление ресурсов и написание велосипедов! Если бы команда Qt Creator занялась доработкой KDevelop, а не написанием своей собственной IDE, возможно сейчас мы бы имели что-то вроде продуктов JetBrains, но быстрое, для C++ и на C++. Ведь функциональность KDevelop была впечатляющая для своего времени, чего только их парсер стоит. А сейчас там всё потихоньку умирает.

хорошо разбирает, но тормозит /кстати экспериментальный плагин clang в QtC тоже тормозит - примерно одинаковая картина, но ещё и падает временами/

Ты Qt Creator 3.5 beta1 не тыкал? Там вроде как имеются значительные исправления как во внутренней code model, так и в clang'овской. Да и вообще в ветке wip/clang-oop сейчас идёт какая-то активная работа.

Да и с CMake они ковырялись http://code.qt.io/cgit/qt-creator/qt-creator.git/tree/dist/changes-3.5.0.md?h...

Может будет возможность смерджить что-то из твоего плагина в основной?

EXL ★★★★★
()
Ответ на: комментарий от EXL

Эх, такое-то распыление ресурсов и написание велосипедов! Если бы команда Qt Creator занялась доработкой KDevelop, а не написанием своей собственной IDE, возможно сейчас мы бы имели что-то вроде продуктов JetBrains, но быстрое, для C++ и на C++.

где-то слышал, что там не всё гладко в плане лицензирования при заимствовании кода в том же KDevelop, какой-то нюанс есть. Имхо, в том и причина, что поддержка CMake не такая какой могла бы быть. С другой стороны, их понять можно: они, по сути, запилили свой фулстек для разработки на C++ и Qt, эдакий Borland C++ Builder, но с вменяемым компилятором (даже несколькими), кросплатформенное, и ни от кого не зависят ни по лицензиям ни по общей свободе действий. Всё таки это коммерческая фирма, им свобода манёвра нужна.

Ты Qt Creator 3.5 beta1 не тыкал? Там вроде как имеются значительные исправления как во внутренней code model, так и в clang'овской. Да и вообще в ветке wip/clang-oop сейчас идёт какая-то активная работа.

Ну мастер регулярно мёржится с 3.5 и другими бранчами, но пока не тыкал clang. Особенно WIP бранч. На работе пока особых прорывов не заметил. Нужно будет шланговую кодовую модель подключить, посмотреть.

Да и с CMake они ковырялись...

у меня плагин - доработка поверх оригинального, я регулярно вливаю изменения из апстрима. Там, в основном, косметика, из крутого: несколько разных cmake (бывают SDK с подточенным под себя CMake).

Может будет возможность смерджить что-то из твоего плагина в основной?

Диалог запуска CMake, да и всё, что не относится к отображению файлов... В принципе - да. Градус пока нужный не пришёл, что бы заняться. Регулярно порываюсь, но всё не порвусь. Если кто решится: на гитхабе достаточно взять дельту между master и qtc-master (ну, только убрать сканирование дерева каталогов). Плюс переписать очистку кеша CMake в нерекурсивном виде (правильный deltree() сделать) :)

PS хы моя:
http://code.qt.io/cgit/qt-creator/qt-creator.git/tree/dist/changes-3.5.0.md?h...
http://code.qt.io/cgit/qt-creator/qt-creator.git/tree/dist/changes-3.5.0.md?h...
:-)

h4tr3d ★★★★★
() автор топика
Ответ на: комментарий от h4tr3d

Да я сам с английским на «Лондон из зе кэпитал оф грэйт британ». Жди анонимусов-лингвисточек.

Main differences from

Я б написал: «Noticeable advantages over original CMakeProject plugin»

reads

Неа.

Project's file list is read from file system instead of parsing .cbp

Stil ★★★★★
()

А вообще, бро, – зачёт, обязательно гляну на твой плагин. Изкоробочный реально убог.

Кстати, а Kitware ещё не сподобились запилить что-нибудь типа libcmake, чтобы облегчить жизнь IDE-строителям? Это ведь был бы чистый вин. Вон, появилась libgit и в MSVS теперь есть гит ☺

Stil ★★★★★
()
Ответ на: комментарий от EXL

Да и вообще в ветке wip/clang-oop сейчас идёт какая-то активная работа.

Превращают плагин в виде разделяемой библиотеки в сервис, передающий данные по сокету. Плюс в том, что с падением clang не упадёт сама IDE.

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

Плюс - это когда ничего не падает. Остальное - танцы на костылях. З.Ы. даже в мрачные годы в кдевелопе cmake не падал.

Pavval ★★★★★
()
Ответ на: комментарий от Stil

Вон, появилась libgit и в MSVS теперь есть гит ☺

Ага, и кстати весьма крутая реализация. Единственное что пока удручает — отсутствие поиска по сообщениям коммитов. Но в 2015 скорее всего запилят.

EXL ★★★★★
()
Ответ на: комментарий от Stil

А вообще, бро, – зачёт, обязательно гляну на твой плагин. Изкоробочный реально убог.

ну на многое не рассчитывай, там всё фичи в начале README.md перечисленые, а баги - забыты :)

а Kitware ещё не сподобились запилить что-нибудь типа libcmake

ниа! Либо это настолько глухо спрятанное явление, что я про него не знаю.

h4tr3d ★★★★★
() автор топика
Ответ на: комментарий от Pavval

Воу воу! тут речь не о cmake, а о парсере clang была. cmake - внешний вызов, даже если упадёт - его проблемы. В коде да, были косяки, но при обнаружении - правлю.

h4tr3d ★★★★★
() автор топика
Ответ на: комментарий от Pavval

Ок, сори. А что, шланг разве падучий?

Да, на некоторых примерах кода вполне может упасть. Во время набора кода содержимое исходного файла в памяти редактора меняется постоянно и повышаются шансы встретить тот недописанный код, который уронит парсер вместо того чтобы просто заставить его выплюнуть пару ошибок.

P.S. Ещё clang очень чувствителен к неразрешённым #include, что странно и составляет большую проблему.

quiet_readonly ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.