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.
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.
You need deb sources for
any-pba-1.0) and distro
wheezy-mingw-5), see https://deb.clazzes.org.
For starters, You need to install the packages
Retrieve the sceleton
Decide for the main name of your app:
Export our example from public svn:
# for a flat application project:
svn export "https://svn.clazzes.org/svn/pba/trunk/pba-helloworld-portable" $MYAPPNAME
# for a multi-module multi-program application project:
svn export "https://svn.clazzes.org/svn/pba/trunk/pba-hellobigworld-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:
Optional: Remove windows stuff
If you do not want windows binaries, remove it:
# Variant 1: Remove NSIS installer only. For libraries common despite cross compilation.
rm -rf nsis src/*.nsi
# Variant 2: Remove NSIS installer and mingw-6
rm -rf nsis src/*.nsi debian-mingw-6
# Variant 3: Remove all windows crossbuilding stuff
rm -rf nsis src/*.nsi src/include-mingw.mk src/*.rc debian-mingw* build/win*
Change my name and e-mail to yours and adapt the description:
$EDITOR debian*/control debian*/changelog $(ls -1 src/*.pc.tmpl src/*.rc src/*.nsi src/*.h 2>/dev/null)
Do not forget to change the icon, too!
Update or remove the ReadMe
At least remove the link to this page ...
# edit ...
# ... or remove the file and the reference in 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:
# this needs sudo privileges
# 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
.nsi script template and replace all instances of "
Clazzes.org" with something of your choice:
Then "make" the
make -C nsis && ls -ltr nsis/*.exe
Optional multi-module/multi-program variant: Create Modules, Programs
# create module common
# create program foobar-daemon
To create the Ecplise project, select File, New, Project..., C/C++, Makefile Project with existing code.
The recommended Build Configurations and their Build directories are: