cmake
Projecten verpakken en distribueren
Zoeken…
Syntaxis
- # Verpak een build-map
pack [PATH] - # Gebruik een specifieke generator
cpack -G [GENERATOR] [PATH] - # Zorg voor optionele overschrijvingen
- cpack -G [GENERATOR] -C [CONFIGURATIE] -P [PACKAGE NAME] -R [PACKAGE VERSION] -B [PACKAGE DIRECTORY] --vendor [PACKAGE VENDOR]
Opmerkingen
CPack is een externe tool voor het snel verpakken van gebouwde CMake-projecten door alle vereiste gegevens rechtstreeks uit de CMakeLists.txt
bestanden en de gebruikte installatieopdrachten zoals install_targets()
.
Om CPack correct te laten werken, moet CMakeLists.txt
bestanden of doelen bevatten die moeten worden geïnstalleerd met behulp van het install
build-doel.
Een minimaal script kan er zo uitzien:
# 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)
Een pakket maken voor een gebouwd CMake-project
Om een herdistribueerbaar pakket te maken (bijvoorbeeld een ZIP-archief of een installatieprogramma), is het meestal voldoende om CPack eenvoudigweg aan te roepen met een syntaxis die erg lijkt op het aanroepen van CMake:
cpack path/to/build/directory
Afhankelijk van de omgeving verzamelt dit alle vereiste / geïnstalleerde bestanden voor het project en plaatst deze in een gecomprimeerd archief of zelfuitpakkend installatieprogramma.
Een te gebruiken CPack-generator selecteren
Om een pakket met een specifiek formaat te maken, is het mogelijk om de te gebruiken generator te kiezen.
Vergelijkbaar met CMake kan dit worden gedaan met behulp van het argument -G :
cpack -G 7Z .
Het gebruik van deze opdrachtregel zou het gebouwde project in de huidige map verpakken met behulp van het 7-Zip archiefformaat.
Op het moment van schrijven ondersteunt CPack versie 3.5 standaard de volgende generatoren:
-
7Z
7-Zip bestandsformaat (archief) -
IFW
Qt Installer Framework (uitvoerbaar) -
NSIS
Null Soft Installer (uitvoerbaar) -
NSIS64
Null Soft Installer (64-bit, uitvoerbaar) -
STGZ
Tar GZip-compressie (archief) -
TBZ2
Tar BZip2-compressie (archief) -
TGZ
Tar GZip-compressie (archief) -
TXZ
Tar XZ-compressie (archief) -
TZ
Tar Compress-compressie (archief) -
WIX
MSI-bestandsformaat via WiX-tools (uitvoerbaar archief) -
ZIP
ZIP-bestandsformaat (archief)
Als er geen expliciete generator wordt verstrekt, probeert CPack de best beschikbare te bepalen, afhankelijk van de werkelijke omgeving. Het geeft bijvoorbeeld de voorkeur aan een zelfuitpakkend uitvoerbaar bestand op Windows en maakt alleen een ZIP-archief aan als er geen geschikte toolset wordt gevonden.