X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=CMakeLists.txt;h=956f647647347bfc34fa4d34651f8027716ad280;hp=e2d5f48be061c957a9603c02b01dc7d937d5c4d0;hb=6538dce32fd66ee5274197f16bc9b75f09ef4aae;hpb=d68e9d67200abc51123b357bcdbbc816d4a70791 diff --git a/CMakeLists.txt b/CMakeLists.txt index e2d5f48b..956f6476 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,6 @@ # General setup ##################################################################### -cmake_minimum_required(VERSION 2.8.9) # You'll need at least 2.8.12 for KDE Frameworks integration project(QuasselIRC) # Versions @@ -34,11 +33,6 @@ include(FeatureSummary) include(QuasselCompileSettings) include(QuasselMacros) -# Setting COMPILE_DEFINITIONS_ is deprecated since CMake 3.0 in favor of generator expressions. -# These have existed since CMake 2.8.10; until we depend on that, we have to explicitly enable the old policy. -if (CMAKE_MAJOR_VERSION GREATER 2) - cmake_policy(SET CMP0043 OLD) -endif() # Options and variables that can be set on the command line ##################################################################### @@ -119,6 +113,22 @@ if (LINK_EXTRA) endif() +# Setup CMake +##################################################################### + +if (USE_QT5 AND WITH_KDE) + cmake_minimum_required(VERSION 2.8.12) +else() + cmake_minimum_required(VERSION 2.8.9) +endif() + +# Setting COMPILE_DEFINITIONS_ is deprecated since CMake 3.0 in favor of generator expressions. +# These have existed since CMake 2.8.10; until we depend on that, we have to explicitly enable the old policy. +if (CMAKE_MAJOR_VERSION GREATER 2) + cmake_policy(SET CMP0043 OLD) +endif() + + # Simplify later checks ##################################################################### @@ -139,11 +149,7 @@ if (USE_QT5) add_definitions(-DHAVE_QT5) else() message(STATUS "Building for Qt4...") - if (BUILD_GUI) - set(QT_MIN_VERSION "4.6.0") - else() - set(QT_MIN_VERSION "4.4.0") - endif() + set(QT_MIN_VERSION "4.8.0") # Select a Qt installation here, if you don't want to use system Qt if(QT_PATH) @@ -256,6 +262,19 @@ if (USE_QT5) endif() if (WITH_KDE) + find_package(KF5CoreAddons QUIET) + set_package_properties(KF5CoreAddons PROPERTIES TYPE REQUIRED + URL "http://inqlude.org/libraries/kcoreaddons.html" + DESCRIPTION "framework for solving common problems such as caching, randomization, and more" + PURPOSE "Required for KDE Frameworks integration" + ) + + find_package(KF5TextWidgets QUIET) + set_package_properties(KF5TextWidgets PROPERTIES TYPE REQUIRED + URL "http://inqlude.org/libraries/ktextwidgets.html" + DESCRIPTION "framework providing an assortment of widgets for displaying and editing text" + PURPOSE "Allows to use extra features provided by KDE Frameworks in input widgets" + ) endif() @@ -270,14 +289,12 @@ if (USE_QT5) DESCRIPTION "the database support module for Qt5" ) - # While QCA2 seems to support Qt5, it is not actually co-installable or distinguishable from the Qt4 version... - # In order to avoid linking against the Qt4 version (which is probably the one installed), disable this for now - #find_package(QCA2 QUIET) - #set_package_properties(QCA2 PROPERTIES TYPE RECOMMENDED - # URL "https://projects.kde.org/projects/kdesupport/qca" - # DESCRIPTION "Qt Cryptographic Architecture" - # PURPOSE "Required for encryption support" - #) + find_package(QCA2-QT5) + set_package_properties(QCA2-QT5 PROPERTIES TYPE RECOMMENDED + URL "https://projects.kde.org/projects/kdesupport/qca" + DESCRIPTION "Qt Cryptographic Architecture" + PURPOSE "Required for encryption support" + ) endif(BUILD_CORE) @@ -418,6 +435,11 @@ if (MINGW AND NOT KDE4_FOUND) add_definitions(-U__STRICT_ANSI__) endif() +# Sanitize compiler flags - old versions of KDE set -ansi, which breaks -std=c++11 +if (CMAKE_COMPILER_IS_GNUCXX) + string(REPLACE "-ansi" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +endif() + # Setup KDE / KDE Frameworks ##################################################################### @@ -430,8 +452,8 @@ if (KDE4_FOUND) set(EMBED_DATA OFF) # Better have the compile flags global, even for the core, to avoid problems with linking the mono client - add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS}) - set(HAVE_KDE4 TRUE) + add_definitions(-DHAVE_KDE -DHAVE_KDE4 ${KDE4_DEFINITIONS}) + set(WITH_KDE4 TRUE) endif() if (USE_QT5 AND WITH_KDE) @@ -442,8 +464,8 @@ if (USE_QT5 AND WITH_KDE) include(KDECompilerSettings) include(KDECMakeSettings) - add_definitions(-DHAVE_KF5) - set(HAVE_KF5 TRUE) + add_definitions(-DHAVE_KDE -DHAVE_KF5) + set(WITH_KF5 TRUE) endif() # This needs to come after setting up KDE integration, so we can use KDE-specific paths