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
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
400
What happened to RubyGems and what can we learn?
mikemcquaid
0
520
Ruby on (Guard)Rails
mikemcquaid
0
350
Workbrew - Homebrew for Mac Admins
mikemcquaid
1
440
Using "modern" Ruby to build a better, faster Homebrew
mikemcquaid
3
5.4k
Homebrew's Evolution
mikemcquaid
0
330
Open Source: boundaries, burnout, business
mikemcquaid
0
710
Homebrew’s Great Migration: moving to GitHub Packages with zero downtime
mikemcquaid
0
780
Building effective relationships
mikemcquaid
0
450
Other Decks in Programming
See All in Programming
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
140
AI駆動開発勉強会 広島支部 第一回勉強会 AI駆動開発概要とワークショップ
hayatoshimiu
0
440
さぁV100、メモリをお食べ・・・
nilpe
0
130
Oxcを導入して開発体験が向上した話
yug1224
4
280
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
3.5k
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
810
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
270
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
130
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
440
Modding RubyKaigi for Myself
yui_knk
0
880
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
100
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
540
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
520
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Speed Design
sergeychernyshev
33
1.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
190
Accessibility Awareness
sabderemane
1
130
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Code Review Best Practice
trishagee
74
20k
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?