From 4549671a24de95dd6a2704bdefca957b864df7d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 10 Jun 2008 14:26:31 +0200 Subject: [PATCH] Updated cmake-based buildsys to make it work with Windows. 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 | 14 ++++++++++++++ README.cmake | 21 ++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bec08c9c..c6659ae6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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! @@ -11,6 +12,11 @@ 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. diff --git a/README.cmake b/README.cmake index 805679dc..28a6c399 100644 --- a/README.cmake +++ b/README.cmake @@ -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 -- 2.20.1