Quassel IRC - Installation Notes
================================

These should help you to install Quassel IRC from source. Please also have a
look at the README file!

Quassel IRC provides three binaries: quasselcore, quasselclient, and
quassel. While quasselcore and quasselclient obviously provide the
separated core and client functionality, the latter one (quassel) is a
monolithic version containing both of them for convenience.

Note that quasselcore is no longer being built by default, since it tends to
confuse users more than it helped. It will be back as soon as we have simple mode
implemented.

We now use CMake as our build system. CMake supports and encourages out-of-source 
builds, which do not clutter the source directory. You can (and should) thus use 
an arbitrary directory for building.

There is no "make distclean"; "make clean" should usually be enough since CMake
actually cleans up properly (qmake often didn't). If you really want to get rid
of all build files, just remove the build directory.

Usually, you will build Quassel as follows:

cd /path/to/build/dir
cmake /path/to/quassel
make

Additionally, you may add some options to the cmake call, prefixed by -D. These need
to follow the source directory PATH:

cmake /path/to/quassel -D<option1> -D<option2>

NOTE: In order to reconfigure, you need to remove CMakeCache.txt (or empty
      the build directory), otherwise cmake will ignore modified -D options!

Quassel recognizes the following options:

-DWANT_(CORE|QTCLIENT|MONO)=(ON|OFF)
    Allow to choose which Quassel binaries to build.

-DWITH_KDE=ON
    Enable integration into KDE4

-DWITH_OXYGEN=(ON|OFF|AUTO)
    Whether to install Oxygen icons used by Quassel. By default (AUTO) we don't install them if
    KDE integration is enabled and KDE > 4.3.0 is present, as all needed icons are part of the
    system Oxygen iconset in this case. Using ON or OFF you can override automatic detection.

-DWITH_OPENSSL=OFF
    Disable OpenSSL support

-DWITH_DBUS=OFF
    Disable D-Bus support. This will disable support for notification-daemon.

-DWITH_WEBKIT=OFF
    Disable WebKit support. You will not have webpage previews on hovering URLs.

-DWITH_PHONON=OFF
    Disable support for audio notifications via Phonon.

-DWITH_LIBINDICATE=OFF
    Disable support for Ayatana notifications (libindicate-qt)

-DWITH_CRYPT=OFF
    Disable crypt support

-DLINGUAS="<languages">
    Allow to choose which languages should be compiled into the binary.
    <languages> is a space- or comma-separated list of language codes.
    Example: -DLINGUAS="de en_US"

-DEMBED_DATA=ON
    Embed all external data files (e.g. icons) into the binary. This will give you a
    standalone binary that does not require installation. Will be ignored if KDE support
    is enabled.

-DQT=/path/to/qt
    Use a non-system Qt installation. This is for example useful if you have a static
    Qt installed in some local dir.

-DSTATIC=ON
    Enable static building of Quassel. On Linux, you should link the static versions of some libs
    (in particular libstdc++.a) into /path/to/build/dir/staticlibs in oder to create
    a portable binary! Be aware of the fact that some things we do in STATIC mode might not be portable
    or require a particular setup; it's mainly meant for the devel team. See also doc/.

BUILDING ON WINDOWS:
--------------------
We have tested building on Windows with a statically built Qt (with its /bin directory in %PATH%)
and MSVC 2005/2008. Make sure that you use a "shell" that has all needed env variables setup,
such as the "Visual Studio Command Prompt". You will also need the /bin of the Microsoft SDK in
your %PATH% at least for VS 2008, otherwise rc.exe is not found.
Currently, only building in the shell using nmake seems to work; CMake can also create MSVC project
files, but they seem to be problematic. However, YMMV. Software development on Windows is a real
PITA.

After you have everything setup:

cd C:\path\to\quassel-build
cmake -G"NMake Makefiles" C:\path\to\quassel\source -DSTATIC=1
nmake
