Note to myself: QByteArray("\000") != QByteArray (1, '\000')
[quassel.git] / CMakeLists.txt
index 9baf21a..5652401 100644 (file)
@@ -5,6 +5,7 @@
 # -DQT=/path/to/qt : Choose a Qt4 installation to use instead of the system Qt4
 # -DSTATIC=ON      : Enable static building of Quassel. Use with care.
 # -DSPUTDEV=ON     : Do not use.
+# -DDEPLOY=ON      : Mac OS X only. Use only fore redistribution Quassel Packages!!
 #
 # NOTE: You need to remove CMakeCache.txt if you plan to change any of these values!
 
@@ -13,9 +14,9 @@ project(QuasselIRC)
 # Target scopes don't work in older versions
 cmake_minimum_required(VERSION 2.4.7 FATAL_ERROR)
 
-# This would suppress annoying warnings on cmake-2.6, but we can't use it 
-# with 2.4, so... DUH!
-# cmake_policy(SET CMP0003 OLD)  # suppress linker warnings
+if(COMMAND cmake_policy)
+   cmake_policy(SET CMP0003 OLD)  # suppress linker warnings
+endif(COMMAND cmake_policy)
 
 # Use our own (well, KDE's) version of some modules
 # In particular cmake's FindQt4 and FindOpenSSL are quite buggy
@@ -27,6 +28,7 @@ option(WANT_QTCLIENT "Build the Qt4 GUI client binary"          ON)
 option(WANT_MONO     "Build the monolithic (all-in-one) binary" OFF)
 
 option(STATIC        "Enable static building (might not be portable)" OFF)
+option(DEPLOY        "Mac OS X only! Adds required libs to bundle resources and create a dmg. Note: requires Qt to be built with 10.4u SDK" OFF)
 option(SPUTDEV       "Do not use!" OFF)
 
 set(QT "" CACHE STRING "Path to a Qt installation to use instead of the system Qt")
@@ -54,6 +56,12 @@ endif(CMAKE_COMPILER_IS_GNUCXX)
 
 set(QT_MIN_VERSION "4.3.0")
 
+if(APPLE AND DEPLOY)
+  set(CMAKE_OSX_ARCHITECTURES "i386;ppc")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.4")
+  set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
+endif(APPLE AND DEPLOY)
+
 # Enable mostly b0rked stuff (new ChatView), do not enable this unless you know what you do...
 if(SPUTDEV)
   add_definitions(-DSPUTDEV)
@@ -61,6 +69,9 @@ endif(SPUTDEV)
 
 # Set up OpenSSL
 find_package(OpenSSL)
+if(NOT OPENSSL_FOUND)
+  add_definitions(-DQT_NO_OPENSSL)
+endif(NOT OPENSSL_FOUND)
 
 # Select a Qt installation here, if you don't want to use system Qt
 if(QT)
@@ -186,6 +197,12 @@ if(APPLE)
   add_custom_command(TARGET quassel POST_BUILD
                      COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makebundle.py
                              ${CMAKE_SOURCE_DIR} "Quassel" quassel)
+  if(DEPLOY)
+    add_custom_command(TARGET quasselclient POST_BUILD
+                       COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makePackage.sh Client)
+    add_custom_command(TARGET quasselcore POST_BUILD
+                       COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makePackage.sh Core)
+  endif(DEPLOY)
 endif(APPLE)
 
 # Install rules