CMake build system template for C++/Qt based projects
C++ Shell
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cmake
contribs
debian
doc
nsis
share
src
ts
.gitignore
AUTHORS
CMakeLists.txt
COPYING
HACKING
NEWS
README
THANKS
TRANSLATORS

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>