У KDE програмне забезпечення згруповано за «модулями» різних розмірів. Спочатку таке групування передбачало декілька сховищ великих модулів, але із впровадженням заснованих на Git сховищ початкових кодів ці великі модулі було поділено на багато дрібніших модулів.
У kdesrc-build також використовується ця концепція модулів. Загалом кажучи, «модуль» — збірка коду, яку можна отримати, зібрати, перевірити та встановити.
Наказати kdesrc-build зібрати окремий модуль доволі просто. Нижче наведено код прикладу оголошення модуля, код якого зберігається у Git, у файлі налаштувань.
modulekdefoo
end module
cmake-options -DCMAKE_BUILD_TYPE=Debug
Підказка
Цей модуль засновано на Git, оскільки тут не використовується параметр repository. Крім того, для прикладу використано параметр cmake-options
, насправді він не потрібен.
Зараз, більшість модулів коду KDE зберігається у Git проєкту KDE, і зазвичай поєднуються у групи модулів.
Через це у kdesrc-build передбачено підтримку груп модулів, за допомогою визначень наборів модулів. Приклад:
module-setbase-modules
repository
kde-projectsuse-modules
kde-runtime kde-workspace kde-baseapps
end module-set
Підказка
Ви можете, якщо хочете, вказати порожню назву набору модулів (base-modules
у нашому прикладі). У такому разі параметр repository
повідомить kdesrc-build про те, звідки слід отримати код, але ви також можете скористатися адресою git://.
Однією особливою можливістю використання «repository
kde-projects
» є те, що kdesrc-build автоматично включатиме всі модулі Git, які згруповано у вказаних вами модулях (у базі даних проєктів KDE).
Працюючи з концепцією групи модулів, розробники KDE зрештою виявили, що синхронізація у Git великої кількості гілок в усіх сховищах є доволі марудною справою, особливо у процесі розробки нових бібліотек KDE Frameworks для Qt™ 5.
Щоб уникнути зайвої роботи, було створено концепцію «груп гілок». Користувачі і розробники можуть вибрати одну певну групу, а скрипт автоматично вибере відповідні гілки у кожному зі сховищ Git.
У kdesrc-build передбачено підтримку цієї можливості з версії 1.16-pre2. Підтримку реалізовано за допомогою параметра branch-group.
Приклад A.1. Приклад використання branch-group
branch-group можна скористатися у файлі налаштувань так:
global # Вибрати KDE Frameworks 5 та інші програми, засновані на Qt5branch-group
kf5-qt5
# Інші загальні параметри ... end global module-set # branch-group працює лише для kde-projectsrepository
kde-projects # branch-group успадковується з одного набору повсюдно, але # його можна вказати і тут.use-modules
kdelibs kde-workspace
end module-set # гілкою kdelibs буде "frameworks" # гілкою kde-workspace буде "master" (станом на серпень 2013 року)
У цьому випадку одне значення branch-group
дасть різні назви гілок для кожного з модулів Git.
Для роботи з цією можливістю потрібні певні дані, супровід яких здійснюють розробники KDE у сховищі Git з назвою kde-build-metadata
. Втім, цей модуль буде автоматично включено kdesrc-build (хоча його і буде показано у даних, виведених скриптом).
Підказка
Для модулів KDE, для яких не встановлено назви гілки для вибраної вами групи гілок, типово буде вибрано відповідну назву гілки, ту, яку було б вибрано, якщо б ви не вказували параметра branch-group
.