PBA-cbs bootstrapping of portable C++ project
Setting up a portable C++ project still is a pain in the ass, especially if it shall be portable.
When trying to automate it in some way, we came to the conclusion that a full example in a public subversion repository is a good solutions because it's easy to use for you and easy to maintain for us.
HowTo ...
These are the steps for an ultra fast bootstrapping of a portable project relying on pba-cbs and our incarnation of the MinGW cross compilation toolchain.
Preparations
You need deb sources for pba (any-pba-1.0) and distro-mingw-5 (i.e. squeeze-mingw-5 or wheezy-mingw-5), see https://deb.clazzes.org.
For starters, You need to install the packages pba-cbs and subversion.
Retrieve the sceleton
Decide for the main name of your app:
Export our example from public svn:
svn export "https://svn.clazzes.org/svn/pba/trunk/pba-helloworld-portable" $MYAPPNAME
# for a library project:
svn export "https://svn.clazzes.org/svn/pba/trunk/pba-hellolib-portable" $MYAPPNAME
Rename and search'n'replace
Rename some stuff and have the inlcude files adapted:
scripts/rename_main_files.sh $MYAPPNAME
rm scripts/rename_main_files.sh
Optional: Remove windows stuff
If you do not want windows binaries, remove it:
rm -rf nsis src/*.nsi
# Variant 2: Remove all windows crossbuilding stuff
rm -rf nsis src/*.nsi src/include-mingw.mk src/*.rc debian-mingw* build/win*
$EDITOR build/Makefile
Adapt debian package meta infos
Change my name and e-mail to yours and adapt the description:
Do not forget to change the icon, too!
Update or remove the ReadMe
At least remove the link to this page ...
$EDITOR doc/ReadMe.txt
# ... or remove the file and the reference in debian*/rules
rm doc/ReadMe.txt
$EDITOR debian*/rules
Optional: Activate svn or another revision control system
Now (and before any build activity) is a very good time to put your project under subversion control:
You might also want to fill svn:ignore properties of some directories:
Optional: Install required libs and build the package
To produce the debian packages, just:
pba-builddeps -i
pba-build -u
# or dpkg-build*
To only build the linux packages or only the windows packages, add -o unix resp. -o mingw to the pba-commands.
Optional: Create Windows Installers
(Re)edit the .nsi script template and replace all instances of "Clazzes.org" with something of your choice:
Then "make" the nsis directory: