CMake build system template for C++/Qt based projects
C++ Shell
Latest commit cc77463 Jan 24, 2015 @rhtyd NEWS: 1.2 version
Signed-off-by: Rohit Yadav <rohit@scaleninja.com>

README

About
=====
CMakeQt, a cross-platform CMake build system template for C++/Qt based projects.
Copyright Rohit Yadav <rohit@scaleninja.com>, 2009-2015

Feel free to use and modify it according to your project. For reporting bugs,
feature requests and just to say hi, contact the author.

WWW
===
https://github.com/bhaisaab/cmakeqt
https://www.ohloh.net/p/cmakeqt

History
=======
Initially the build system was just for VLMC, but I thought why not make a
build system template that anyone can hack easily and use in their own projects,
thus CMakeQt!

Some projects that use CMakeQt (or parts of source code)
==============================

- VLMC: http://git.videolan.org/?p=vlmc.git;a=summary
- CernVM Installer: http://cernvm.cern.ch/portal/cernvm-installer
- Blender: http://www.blender.org
- Phonon-backend-vlc: http://gitorious.org/phonon/phonon-vlc
- Tano Player: http://sourceforge.net/projects/tano/
- Graffiti: https://github.com/bhaisaab/graffiti

Source
======

Github: http://github.com/bhaisaab/cmakeqt

Grab the latest source:
  git clone git://github.com/bhaisaab/cmakeqt.git

Translations
============

Languages that only needed to be shipped can be selected using LANGS, for example:
  cmake -DLANGS="en;fr" ..

To create ts files, either simply do a `make lupdate` or cd to ts/ folder and do:
  cd ts
  lupdate ../src/* -ts template.ts

Now, send this template to the translators and ask them to rename and send you the file as cmakeqt_<lang-token>.ts;
where, lang token can be fr_FR etc.

If you add a new language translation, simple add the token to the lang list in ts/CMakeLists.txt
For testing I've added a french translation, which is explicitly ran in src/main.cpp

Hack hack hack!

Building
========

  mkdir build && cd build
  cmake .. && make

The binary will be created in <build-folder>/bin

Packaging
=========

1. On Linux:
  make package

  To force deb:
    cpack -G DEB

  To force rom:
    cpack -G RPM

2. On Mac: (gcc, g++, make, cmake, qt 4.6+ etc. must be installed...)
  cd contribs
  sh contribs-mac.sh
  This will by default create a Mac Bundle, vlmc.app in /build/bin

  To create a dmg image:
    Uncomment #dmg in /src/CMakeLists.txt, at the end of the file.
    and follow the build process, the dmg will be created in /build/bin

3. To cross-compile and package on linux for Windows: (mingw, wine, nsis must be installed...)

  cd contribs
  sh contribs.sh
  cd ..
  mkdir win32 && cd win32
  cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain-win32.cmake -DQT_MOC_EXECUTABLE=../contribs/tools/moc.exe ..
  make
  make installer

  This will create an .exe installer in /win32/bin

Distribution via Launchpad
==========================

Launchpad.net provides PPA facility for distribution of debian builds.
The /debian folder holds debian package building rules.

You build and upload your source pkgs by:
  debuild -k<pgp key ID>
  debuild -k<pgp key ID> -S -sa # creates only the source pkg
  dput ppa:<ppa-id>/<pkg> <source.changes>

To add/install the pkg, one can do:
  sudo add-apt-repository ppa:<ppa-id>/<pkg>
  sudo apt-get update
  sudo apt-get install <pkg>