Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CPack
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Mike McQuaid
February 29, 2012
Programming
2.3k
2
Share
CPack
Cross-platform packaging with CPack.
Presented at the Gran Canaria Desktop Summit in 2009.
Mike McQuaid
February 29, 2012
More Decks by Mike McQuaid
See All by Mike McQuaid
Package Management Learnings from Homebrew
mikemcquaid
0
390
What happened to RubyGems and what can we learn?
mikemcquaid
0
480
Ruby on (Guard)Rails
mikemcquaid
0
340
Workbrew - Homebrew for Mac Admins
mikemcquaid
1
420
Using "modern" Ruby to build a better, faster Homebrew
mikemcquaid
3
5.3k
Homebrew's Evolution
mikemcquaid
0
320
Open Source: boundaries, burnout, business
mikemcquaid
0
690
Homebrew’s Great Migration: moving to GitHub Packages with zero downtime
mikemcquaid
0
760
Building effective relationships
mikemcquaid
0
420
Other Decks in Programming
See All in Programming
Hive Metastoreを通して学ぶIceberg REST Catalog ― 仕様から実装まで
okumin
0
140
Are We Really Coding 10× Faster with AI?
kohzas
0
180
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
780
KMP × Kotlin 2.3 - How Android Got Slower While iOS Builds Improved by 47%
rio432
0
200
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
370
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
150
「OSSがあるなら自作するな」は AI時代も正しいか ── Build vs Adopt の新しい判断基準
kumorn5s
7
2.7k
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
210
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
2
150
【ディップ|26年新卒研修資料】OpenAPI/Swagger REST API研修
dip_tech
PRO
0
170
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
0
180
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
3.1k
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The World Runs on Bad Software
bkeepers
PRO
72
12k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Into the Great Unknown - MozCon
thekraken
41
2.5k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
460
Discover your Explorer Soul
emna__ayadi
2
1.1k
Become a Pro
speakerdeck
PRO
31
5.9k
Are puppies a ranking factor?
jonoalderson
1
3.4k
Paper Plane (Part 1)
katiecoart
PRO
0
7.6k
Unsuck your backbone
ammeep
672
58k
What's in a price? How to price your products and services
michaelherold
247
13k
Transcript
CPack Mike Arthur
Written software?
Written cross-platform software?
Packaged software?
Packaged cross-platform software?
#ifdef WIN32 MFCYuck(2, 9, 1, &_PUKE); #endif #ifdef APPLE id
CocoaNonsense = [UnnecessaryBling sparkle]; #endif #ifdef LINUX X11SpribbleJurop w2_hojed = XJurop(3, wizzle, &apolty); #endif
:’(
Qt
QSomethingNice phew = QCrossPlatform(Qt::Easy);
:D
EXE + ZIP + DMG + APP + DEB +
RPM + TGZ + TBZ2 + ....
Different Components
ssh windows makeInstall.bat ... zip ... ssh osx hdiutil ...
makeBundle.sh ... ssh linux debbuild ... rpmbuild ... tar ...
CPack
(CMake +) CPack
Windows
None
OS X
None
None
Linux
dpkg -i MendeleyDesktop.deb rpm -i MendeleyDesktop.rpm
Step One
include(CPack)
Step Two
Step Two
Charm-0.1.1-Darwin.dmg Charm-0.1.1-Darwin.sh Charm-0.1.1-Darwin.tar.gz
None
None
None
set(CPACK_PACKAGE_VERSION_MAJOR 1) set(CPACK_PACKAGE_VERSION_MINOR 3) set(CPACK_PACKAGE_VERSION_PATCH 0)
None
set(CPACK_GENERATOR “PackageMaker”)
Easy?
1) Variables
2) Graphics
3) Dependencies
Linked libraries?
GetPrerequisites.cmake
Runtime libraries? External executables?
:(
4) Limitations
5) Patch
6) Ask
Mailing list Mike
Questions?