Глава 2. Сеансы и проекты: основы KDevelop

В этом разделе разбирается терминология и система структурирования работы, используемые в программе KDevelop. В частности, вводятся такие понятия, как сеансы и проекты, а также рассказывается о настройке проектов, над которыми планируется работать в KDevelop.

Терминология

В KDevelop предусмотрены сеансы и проекты. Сеанс содержит все проекты, которые как-либо связаны между собой. В приведённых далее примерах можно представить себя разработчиком как библиотеки, так и использующего её приложения. В роли библиотеки выступают библиотеки KDE, а в роли приложения — KDevelop. Другой пример: представьте себя разработчиком ядра Linux®, который также работает и над драйвером устройства для Linux®, который ещё не был добавлен в дерево ядра.

Если взять последний пример, то в KDevelop был бы сеанс с двумя проектами: ядром Linux® и драйвером устройства. С этими проектами лучше работать в рамках одного сеанса (а не создавать два сеанса с одним проектом в каждом), потому что будет полезно видеть в KDevelop функции ядра и структуры данных при написании исходного кода для драйвера — например, чтобы имена функций и переменных ядра автоматически разворачивались или чтобы видеть справку по функциям ядра при работе над драйвером устройства.

Теперь представьте, что также ведёте разработку KDE. В этом случае потребовался бы второй сеанс, содержащий KDE в качестве проекта. В принципе, можно использовать для всего этого один сеанс, но в этом нет особого смысла: при работе над KDE не нужен доступ к функциям ядра или драйвера устройства, а при работе над ядром Linux® не требуется автоматическое разворачивание имён классов KDE. Кроме того, сборка библиотек KDE не связана с пересборкой ядра Linux® (с другой стороны, при сборке драйвера устройства было бы неплохо пересобрать и ядро Linux®, если некоторые заголовочные файлы ядра изменились).

Кроме того, сеансы полезны, когда ведётся работа как над текущей разрабатываемой версией проекта, так и над его ветвью: в этом случае KDevelop не должна путать классы, относящиеся к основному проекту и к его ветви, поэтому потребуются два сеанса, с одинаковым набором проектов, но разными каталогами сохранения (в соответствии с разными ветками разработки).