Додаток A. Модулі KDE та структура початкових кодів

«Модуль»

У KDE програмне забезпечення згруповано за «модулями» різних розмірів. Спочатку таке групування передбачало декілька сховищ великих модулів, але із впровадженням заснованих на Git сховищ початкових кодів ці великі модулі було поділено на багато дрібніших модулів.

У kdesrc-build також використовується ця концепція модулів. Загалом кажучи, «модуль» — збірка коду, яку можна отримати, зібрати, перевірити та встановити.

Окремі модулі

Наказати kdesrc-build зібрати окремий модуль доволі просто. Нижче наведено код прикладу оголошення модуля, код якого зберігається у Git, у файлі налаштувань.

module kdefoo
    cmake-options -DCMAKE_BUILD_TYPE=Debug
end module

Підказка

Цей модуль засновано на Git, оскільки тут не використовується параметр repository. Крім того, для прикладу використано параметр cmake-options, насправді він не потрібен.

Групи пов’язаних модулів

Зараз, більшість модулів коду KDE зберігається у Git проєкту KDE, і зазвичай поєднуються у групи модулів.

Через це у kdesrc-build передбачено підтримку груп модулів, за допомогою визначень наборів модулів. Приклад:

module-set base-modules
    repository kde-projects
    use-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 та інші програми, засновані на Qt5
    branch-group kf5-qt5

    # Інші загальні параметри ...
end global

module-set
    # branch-group працює лише для kde-projects
    repository 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.