From cc81e6ac8c73c02d7c446d2269e6aa861f784ac3 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Fri, 24 Apr 2020 21:14:17 +0300 Subject: [PATCH] update --- .../CMake управление проектом.adoc | 45 ++++++++++++++----- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/wiki/Prog/Development/CMake управление проектом.adoc b/wiki/Prog/Development/CMake управление проектом.adoc index 9499677..a2991fb 100644 --- a/wiki/Prog/Development/CMake управление проектом.adoc +++ b/wiki/Prog/Development/CMake управление проектом.adoc @@ -368,22 +368,45 @@ make uninstall Необходимые переменные устанавливаются в файле `cmake/etc/Variables.cmake` <>. -Устанавливаемые файлы делятся на две группы `MAIN` и `DEV` с помощью -параметра `COMPONENT` функции `install`. В группу `MAIN` необходимо -помещать файлы для установки на целевую систему (исполняемые файлы, -файлы настроек, файлы данных, разделяемые библиотеки), а в группу `DEV` --- -для установки на систему для разработки (заголовочные файлы, статические -библиотеки). +Библиотека CMLib предоставляет возможность стандартного разбиения +на пакеты в соответствии с критериями, приведёнными в таблице. -По умолчанию цель для упаковки исходных текстов называется `package_source`. -Бинарные пакеты создаются программой `cpack`. Пример: +.Критерии разбиения на пакеты +[cols="2m,4m,6",options="header"] +|=== +| Компонент | Имя пакета | Назначение +| main | proj | Основные файла проекта (исполняемые файлы, файлы данных, настроек, ресурсов) +| base-dev | libproj-base-dev | Заголовочные файлы, дополнительные файлы необходимые для разработки +| libs-dev | libproj-dev | Статические библиотеки +| doc | proj-dev | Документация +|=== + +Принадлежность устанавливаемого файла к компоненту определяется с помощью +параметра `COMPONENT` функции `install`. В компонент `main` необходимо +помещать файлы для установки на целевую систему (исполняемые файлы, +файлы настроек, файлы данных, разделяемые библиотеки), в группы `base-dev` +и `base-libs` --- для установки на систему для разработки (заголовочные +файлы, статические библиотеки). + +По умолчанию цель для упаковки исходных текстов называется `package_source`, +цель для создания общего архива скомпилированного проекта --- `package`, +цель для создания пакетов в формате Debian --- `deb`. + +Для примера работы с архивированием можно сделать копию репозитория +библиотеки https://git.246060.ru/f1x1t/myxlib[MyXLib]: [source,sh] ---- +git clone --recursive https://git.246060.ru/f1x1t/myxlib +---- + +Дальнейшие шаги: + +[source,sh,linenums] +---- +cd myxlib +mkdir -p _build/debug cd _build/debug -make -make package_source -cpack ----