Hatred's Log Place

DON'T PANIC!

Dec 24, 2016 - 2 minute read - programming c++ projects

Qt Creator, CMake и судьба CMakeProjectManager2

Проект в стадии прекращения работы над ним…

…А кто пользовался и следил - без паники! То, что давно не обновлялся репозиторий, это следствие того, что сделанные изменения готовятся быть продвинутыми в upstream, по-пожеланию Tobias Hunger.

Да, это не даёт никаких гарантий, что изменения приживутся. Плюс я слабо представляю как реализовать две основные фичи: отображение всех файлов и добавление/удаление/переименование файлов в новом представлении дерева, сделанное для CMake Server Mode. Ревью же на включающее эти фичи для CMake < 3.7 будет скоро создано, пока были сделаны некоторые подготовительные шаги.

Последующими шагами будет реализация следующих возможностей:

  1. Добавление настроек CMake для проекта. Среди этих настроек хочется разместить такие параметры, как: * отображать сканированные файлы в дереве или нет * управление запуском CMake при добавлении/удалении/переименовании файлов * управление исключениями для сканера дерева, что бы исключить нежелательные файлы и ускорить сканирование и формирование дерева
  2. Вынести формирование дерева проекта в абстрактные классы и сделать возможность пользователю управлять представлением. Заодно есть желание сделать вариант построения дерева средний между классикой и новым для server mode, более похожий на оный в KDevelop. Возможно этот шаг будет поделён на два: сначала абстракции без изменения внешнего вида, что бы не вызывать культурного шока, а потом уже остальное. В любом случае, работает правило: больше полезных комитов, а не нытья в рассылке - больше к твоему мнению прислушиваются, а значит легче протолкнуть свои идеи.

Пока минусом использования для построения дерева проекта всех файлов является момент построения дерева: оно делается внутренностями QtC, требует большого количества времени и не асинхронно. То есть QtC тупо подвисает на время построения дерева. Для больших проектов это бывает неприятно. Но Tobias утверждает, что они планируют поработать над этим.

Мастер создания проекта либо будет заинтегрирован тоже, или будет просто лежать в отдельном репозитории: много поддержки он не требует.