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 (архив) -
IFWQt Installer Framework (исполняемый файл) -
NSISNull Soft Installer (исполняемый файл) -
NSIS64Null Soft Installer (64-разрядный, исполняемый) -
STGZСамораспаковывающееся сжатие tar GZip (архив) -
TBZ2Тар BZip2 сжатие (архив) -
TGZTar GZip компрессия (архив) -
TXZTar XZ компрессия (архив) -
TZTar Сжатие сжатия (архив) - Формат файла
WIXMSI через инструменты WiX (исполняемый архив) -
ZIPформат ZIP-архива (архив)
Если явный генератор не предоставляется, CPack будет пытаться определить наилучший доступный в зависимости от реальной среды. Например, он предпочтет создать самораспаковывающийся исполняемый файл в Windows и создать только ZIP-архив, если подходящий набор инструментов не найден.