-These are preliminary instructions, until we get the config more polished.
+Quassel IRC - Installation Notes
+================================
-To build Quassel IRC, cd to build/ and run qmake && make. This builds all three
-versions of Quassel. You may choose individual targets by setting qmakes BUILD
-variable:
+These should help you to install Quassel IRC from source. Please also have a
+look at the README file!
-qmake BUILD=<foo>
+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.
-where <foo> is any combination of qtclient, core, mono or all. Note that in order
-to change this later, you will have to make distclean, otherwise the BUILD setting
-seems to be ignored by qmake.
+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.
-After running make, you will find the binaries in build/targets.
+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.
-NOTE: As of now, quassel needs the directory $HOME/.quassel to exist prior to first
- run, otherwise it cannot create its database! This will be changed soon, but
- for now, you will just need to create this directory.
+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.
-The core-side database will be created automatically. A user named 'Default' with
-the password 'password' will be created, so in order to connect to the core, you
-need to enter this information. The core listens on port 4242 for incoming connections.
+Usually, you will build Quassel as follows:
-Please also do read the README file.
+cd /path/to/build/dir
+cmake /path/to/quassel
+make
-Thanks,
-~ The Quassel IRC Team
+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:
+
+LINGUAS="<languages">
+ Allow to choose which languages should be compiled into the binary.
+ <languages> is a space- or comma-separated list of language codes.
+ Note that this is not a cmake variable, but an environment variable.
+ Example: LINGUAS="de en_US"
+
+-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
+
+-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