Uhm, we should include FindQt4 only after setting /usr/kde/svn/bin:/usr/local/bin...
[quassel.git] / CMakeLists.txt
index d1a3f12..0bbc718 100644 (file)
@@ -1,11 +1,15 @@
 # This is the cmake-based build system for Quassel IRC.
+# You may pass various options to cmake:
+# -DBUILD=<string> : Select binaries to build. <string> may contain any combination
+#                    of "core", "client", "mono" or "all".
+# -DQT=/path/to/qt : Choose a Qt4 installation to use instead of the system Qt4
+# -DSPUTDEV        : Do not use.
 
 project(QuasselIRC)
 
 cmake_minimum_required(VERSION 2.4.5)
 
 set(QT_MIN_VERSION "4.4.0")
-find_package(Qt4 REQUIRED)
 
 # By default, we build all binaries
 if(NOT DEFINED BUILD)
@@ -34,11 +38,21 @@ else(BUILD MATCHES all)
   endif(BUILD MATCHES mono)
 endif(BUILD MATCHES all)
 
+# Select a Qt installation here, if you don't want to use system Qt
+if(DEFINED QT)
+  # FindQt4 will look for the qmake binary in $PATH, so we just prepend the Qt dir
+  set(ENV{PATH} ${QT}/bin:$ENV{PATH})
+  SET(QT_QMAKE_EXECUTABLE ${QT}/bin/qmake CACHE FILEPATH "" FORCE)
+endif(DEFINED QT)
+
 # Enable mostly b0rked stuff (new ChatView), do not enable this unless you know what you do...
 if(SPUTDEV)
   add_definitions(-DSPUTDEV)
 endif(SPUTDEV)
 
+# Now that we have the correct $PATH, lets find Qt!
+find_package(Qt4 REQUIRED)
+
 # Add needed subdirs
 add_subdirectory(src/common)
 include_directories(src/common)
@@ -69,8 +83,8 @@ include_directories(${QT_INCLUDES})
 
 # This macro sets variables for additional Qt modules.
 macro(setup_qt4_variables)
-  set(QUASSEL_QT_DEFINITIONS )
-  set(QUASSEL_QT_LIBRARIES )
+  set(QUASSEL_QT_DEFINITIONS ${QT_DEFINITIONS})
+  set(QUASSEL_QT_LIBRARIES ${QT_LIBRARIES})
   foreach(qtmod ${ARGV})
     # This needs to be a string, not a list, otherwise set_target_properties screws up...
     set(QUASSEL_QT_DEFINITIONS "${QUASSEL_QT_DEFINITIONS} -DQT_${qtmod}_LIB")