Updated cmake-based buildsys to make it work with Windows.
authorunknown <Sputnick@.(none)>
Tue, 10 Jun 2008 12:26:31 +0000 (14:26 +0200)
committerunknown <Sputnick@.(none)>
Tue, 10 Jun 2008 12:26:31 +0000 (14:26 +0200)
This works for me with a static Qt, but YMMV. Updated
README.cmake with build instructions for Windows as well.
App icons will follow after we have merged cmake into trunk.

CMakeLists.txt
README.cmake

index bec08c9..c6659ae 100644 (file)
@@ -4,6 +4,7 @@
 #                    of "core", "client", "mono" or "all".
 # -DQT=/path/to/qt : Choose a Qt4 installation to use instead of the system Qt4
 # -DSTATIC=1       : Enable static building of Quassel, most useful with a static Qt.
+# -DSTATICWIN=1    : Enable static building for Windows.
 # -DSPUTDEV        : Do not use.
 #
 # NOTE: You need to remove CMakeCache.txt if you plan to change any of these values!
 project(QuasselIRC)
 
 cmake_minimum_required(VERSION 2.4.5)
+cmake_policy(SET CMP0003 OLD)  # suppress linker warnings
+
+if(STATICWIN)
+  set(CMAKE_BUILD_TYPE Release)
+endif(STATICWIN)
 
 set(QT_MIN_VERSION "4.4.0")
 
@@ -99,6 +105,14 @@ if(DEFINED STATIC)
   link_directories(${CMAKE_BINARY_DIR}/staticlibs)
 endif(DEFINED STATIC)
 
+if(STATICWIN AND WIN32)
+  link_libraries(imm32 winmm)  # missing by default :/
+endif(STATICWIN AND WIN32)
+
+# FIXME: Add icons for windows as soon as we have merged with trunk (which has reorganized
+#        the icon files):
+#        Simply add the .rc file to the targets
+
 # Here comes the dirty part. Our targets need different Qt4 modules, i.e. different libs
 # and defines. We can't simply include UseQt4 several times, since definitions add up.
 # We workaround this by using our own macro to figure out what to add.
index 805679d..28a6c39 100644 (file)
@@ -4,7 +4,7 @@ There is no "make distclean"; "make clean" should usually be enough since CMake
 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 should build Quassel as follows:
+Usually, you will build Quassel as follows:
 
 cd /path/to/build/dir
 cmake /path/to/quassel
@@ -32,3 +32,22 @@ Quassel recognizes the following options:
     Enable static building of Quassel. 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!
+
+-DSTATICWIN=1
+    Enable static building for Windows platforms. This adds some libs that are not automatically
+    included for some reason.
+
+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.
+
+After you have everything setup:
+
+cd C:\path\to\quassel-build
+cmake -G"NMake Makefiles" C:\path\to\quassel\source -DSTATICWIN=1
+nmake