X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=CMakeLists.txt;h=2a449b7035adff8b959a25dc1af9c7270d3c6479;hp=cd363bc56f014207aaf8088959da05045ffd8182;hb=ba176d1eb6c0e53fc686f0526c1994bbfc65fab8;hpb=bb49ea8fb3d3ecfbe8fb87688df6f215d29ad944 diff --git a/CMakeLists.txt b/CMakeLists.txt index cd363bc5..2a449b70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,25 +156,22 @@ include(${QT_USE_FILE}) include_directories(${QT_INCLUDES}) # Setup OpenSSL +# We don't link to or include OpenSSL ourselves, but use exclusively the Qt API. +# Thus, we simply check if OpenSSL support is present in Qt's config and enable our +# own SSL stuff in this case. Qt should care for adding what it needs itself. if(WITH_OPENSSL) - find_package(OpenSSL) + if(QT_QCONFIG MATCHES "openssl") + message(STATUS "Found OpenSSL support in Qt, enabling SSL") + add_definitions(-DHAVE_SSL) + set(HAVE_SSL true) + else(QT_QCONFIG MATCHES "openssl") + message(STATUS "No OpenSSL support found in Qt, disabling SSL") + add_definitions(-DQT_NO_OPENSSL) + endif(QT_QCONFIG MATCHES "openssl") else(WITH_OPENSSL) message(STATUS "Not enabling OpenSSL support") endif(WITH_OPENSSL) -if(OPENSSL_FOUND) - if(NOT QT_DEFINITIONS MATCHES "QT_NO_OPENSSL") - message(STATUS "Found OpenSSL support in Qt") - add_definitions(-DHAVE_SSL) - set(HAVE_SSL true) - set(MOC_DEFINES ${MOC_DEFINES} -DHAVE_SSL) - else(NOT QT_DEFINITIONS MATCHES "QT_NO_OPENSSL") - message(STATUS "No OpenSSL support found in Qt, disabling") - endif(NOT QT_DEFINITIONS MATCHES "QT_NO_OPENSSL") -else(OPENSSL_FOUND) - add_definitions(-DQT_NO_OPENSSL) -endif(OPENSSL_FOUND) - # Setup D-Bus support if(WITH_DBUS) if(QT_QTDBUS_FOUND) @@ -182,7 +179,6 @@ if(WITH_DBUS) add_definitions(-DHAVE_DBUS) set(LINK_DBUS DBUS) set(HAVE_DBUS true) - set(MOC_DEFINES ${MOC_DEFINES} -DHAVE_DBUS) else(QT_QTDBUS_FOUND) message(STATUS "QtDBus not found, disabling D-Bus support") endif(QT_QTDBUS_FOUND) @@ -195,9 +191,8 @@ if(WITH_WEBKIT) if(QT_QTWEBKIT_FOUND) message(STATUS "Found QtWebKit, enabling WebKit support") add_definitions(-DHAVE_WEBKIT) - set(LINK_WEBKIT WEBKIT) + set(LINK_WEBKIT WEBKIT XMLPATTERNS) set(HAVE_WEBKIT true) - set(MOC_DEFINES ${MOC_DEFINES} -DHAVE_WEBKIT) else(QT_QTWEBKIT_FOUND) message(STATUS "QtWebKit not found, disabling WebKit support") endif(QT_QTWEBKIT_FOUND) @@ -213,7 +208,6 @@ if(WITH_KDE) include_directories(${KDE4_INCLUDES}) add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS}) set(HAVE_KDE 1) - set(MOC_DEFINES ${MOC_DEFINES} -DHAVE_KDE) set(QUASSEL_KDE_LIBRARIES ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_SOLID_LIBS} knotifyconfig) # We always use external icons for KDE4 support, since we use its iconloader rather than our own set(EMBED_DATA OFF) @@ -224,6 +218,14 @@ else(WITH_KDE) message(STATUS "Not enabling KDE4 integration") endif(WITH_KDE) +# needed to compile with mingw without kde +if(MINGW AND NOT HAVE_KDE) + add_definitions(-D_WIN32_WINNT=0x0500) + message(STATUS "Added _WIN32_WINNT=0x0500 definition for MinGW") +# workaround for bug in mingw gcc 4.0 + add_definitions(-U__STRICT_ANSI__) +endif(MINGW AND NOT HAVE_KDE) + # Setup Phonon support - we only need this if we don't have or want KDE4 if(NOT HAVE_KDE) if(WITH_PHONON) @@ -232,7 +234,6 @@ if(NOT HAVE_KDE) message(STATUS "Enabling Phonon support") add_definitions(-DHAVE_PHONON) set(HAVE_PHONON true) - set(MOC_DEFINES ${MOC_DEFINES} -DHAVE_PHONON) else(PHONON_FOUND) message(STATUS "Phonon not found, disabling audio notifications") endif(PHONON_FOUND) @@ -248,6 +249,7 @@ if(WITH_LIBINDICATE) pkg_check_modules(INDICATEQT indicate-qt>=0.2.1) if(INDICATEQT_FOUND) message(STATUS "Enabling Ayatana notification support") + set(HAVE_INDICATEQT true) add_definitions(-DHAVE_INDICATEQT) else(INDICATEQT_FOUND) message(STATUS "Disabling Ayatana notification support") @@ -255,6 +257,8 @@ if(WITH_LIBINDICATE) endif(PKG_CONFIG_FOUND) else(WITH_LIBINDICATE) message(STATUS "Not enabling Ayatana notification support") + # We don't want to link against it even if another package has found it + set(INDICATEQT_LIBRARIES "") endif(WITH_LIBINDICATE) # Now set up install locations; those are set by KDE if integration is enabled @@ -296,15 +300,21 @@ endif(STATIC AND CMAKE_COMPILER_IS_GNUCXX) if(WIN32) link_libraries(imm32 winmm dbghelp Secur32) # missing by default :/ - - if(HAVE_SSL) - link_libraries(${OPENSSL_LIBRARIES} libeay32MD) - endif(HAVE_SSL) + if(MSVC) + set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBUGINFO "/debug /INCREMENTAL:YES /NODEFAULTLIB:libcmt /DEFAULTLIB:msvcrt") + set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBUGINFO}") + set(CMAKE_EXE_LINKER_FLAGS_DEBUGFULL "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBUGINFO}") + link_libraries(Version dwmapi shlwapi) + endif(MSVC) + if(HAVE_SSL AND STATIC) + find_package(OpenSSL REQUIRED) + link_libraries(${OPENSSL_LIBRARIES} ${OPENSSL_EAY_LIBRARIES}) + endif(HAVE_SSL AND STATIC) endif(WIN32) -if(INDICATEQT_FOUND) +if(HAVE_INDICATEQT) add_definitions(-DXDG_APPS_INSTALL_DIR=${XDG_APPS_INSTALL_DIR}) -endif(INDICATEQT_FOUND) +endif(HAVE_INDICATEQT) # We need to create a version.gen # For this, we create our genversion binary and make sure it is run every time.