cmake
Упаковка и распределение проектов
Поиск…
Синтаксис
- # Пакет каталога сборки
pack [PATH] - # Использовать определенный генератор
cpack -G [GENERATOR] [PATH] - # Предоставить дополнительные переопределения
- cpack -G [GENERATOR] -C [КОНФИГУРАЦИЯ] -P [ИМЯ ПАКЕТЫ] -R [ПАКЕТНАЯ ВЕРСИЯ] -B [КАТАЛОГ ПАКЕТОВ] - поставщик [ПАКЕТНЫЙ ВЫСТАВК]
замечания
CPack - это внешний инструмент, обеспечивающий быструю упаковку встроенных проектов CMake, путем сбора всех необходимых данных прямо из файлов CMakeLists.txt
и используемых команд установки, таких как install_targets()
.
Чтобы CPack правильно работал, CMakeLists.txt
должен включать файлы или целевые объекты, которые должны быть установлены с использованием цели install
.
Минимальный скрипт может выглядеть так:
# Required headers
cmake(3.0)
# Basic project setup
project(my-tool)
# Define a buildable target
add_executable(tool main.cpp)
# Provide installation instructions
install_targets(tool DESTINATION bin)
Создание пакета для проекта CMake
Чтобы создать распространяемый пакет (например, ZIP-архив или программу установки), обычно достаточно просто вызвать CPack, используя синтаксис, очень похожий на вызов CMake:
cpack path/to/build/directory
В зависимости от среды это соберет все необходимые / установленные файлы для проекта и поместит их в сжатый архив или самораспаковывающийся установщик.
Выбор используемого генератора CPack
Чтобы создать пакет с использованием определенного формата, можно выбрать генератор, который будет использоваться.
Подобно CMake, это может быть сделано с использованием аргумента -G :
cpack -G 7Z .
Используя эту командную строку, пакет будет построен в текущем каталоге с использованием формата архива 7-Zip.
На момент написания статьи CPack версии 3.5 поддерживал следующие генераторы по умолчанию:
-
7Z
Формат файла 7-Zip (архив) -
IFW
Qt Installer Framework (исполняемый файл) -
NSIS
Null Soft Installer (исполняемый файл) -
NSIS64
Null Soft Installer (64-разрядный, исполняемый) -
STGZ
Самораспаковывающееся сжатие tar GZip (архив) -
TBZ2
Тар BZip2 сжатие (архив) -
TGZ
Tar GZip компрессия (архив) -
TXZ
Tar XZ компрессия (архив) -
TZ
Tar Сжатие сжатия (архив) - Формат файла
WIX
MSI через инструменты WiX (исполняемый архив) -
ZIP
формат ZIP-архива (архив)
Если явный генератор не предоставляется, CPack будет пытаться определить наилучший доступный в зависимости от реальной среды. Например, он предпочтет создать самораспаковывающийся исполняемый файл в Windows и создать только ZIP-архив, если подходящий набор инструментов не найден.