This commit is contained in:
Andrei Astafev 2020-04-24 21:14:17 +03:00
parent 79193d4152
commit cc81e6ac8c

View File

@ -368,22 +368,45 @@ make uninstall
Необходимые переменные устанавливаются в файле `cmake/etc/Variables.cmake`
<<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
----