X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=CMakeLists.txt;h=61428e2ba65d0113bb8f1b4c1195f853838f43f6;hp=f8e97a7cdd3a05d234c6e0fd96a636c7df87cdab;hb=df38a9238d603ec8d2040619befa50980d994916;hpb=7d0879abdca1bf85435b82dcde44907995b1ab44 diff --git a/CMakeLists.txt b/CMakeLists.txt index f8e97a7c..61428e2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,11 @@ endif() # The following options are not for end-user consumption, so don't list them in the feature summary option(FATAL_WARNINGS "Make compile warnings fatal (most useful for CI builds)" OFF) +option(WARN_QT_DEPRECATION "Warn about deprecated Qt functionality" OFF) +if (WARN_QT_DEPRECATION) + # Enable Qt deprecation warnings for Qt < 5.13 (on by default in newer versions) + add_definitions("-DQT_DEPRECATED_WARNINGS") +endif() cmake_dependent_option(DEPLOY "Add required libs to bundle resources and create a dmg" OFF "APPLE" OFF) # List of authenticators and the cmake flags to build them @@ -164,7 +169,7 @@ if (BUILD_GUI) list(APPEND qt_components Gui Widgets) endif() if (BUILD_CORE) - list(APPEND qt_components Script Sql) + list(APPEND qt_components Sql) endif() find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS ${qt_components}) @@ -174,6 +179,25 @@ set_package_properties(Qt5 PROPERTIES TYPE REQUIRED ) message(STATUS "Found Qt ${Qt5Core_VERSION}") +# Check for SSL support in Qt +cmake_push_check_state(RESET) +set(CMAKE_REQUIRED_LIBRARIES Qt5::Core) +check_cxx_source_compiles(" + #include \"qglobal.h\" + #if defined QT_NO_SSL + # error \"No SSL support\" + #endif + int main() {}" + HAVE_SSL) +cmake_pop_check_state() + +if (NOT HAVE_SSL) + message(FATAL_ERROR "Quassel requires SSL support, but Qt is built with QT_NO_SSL") +endif() + +# Compat until fallback code paths have been disabled +add_definitions(-DHAVE_SSL) + # Optional Qt components find_package(Qt5LinguistTools QUIET) @@ -207,19 +231,23 @@ if (BUILD_GUI) PURPOSE "Required for audio notifications" ) - find_package(LibsnoreQt5 0.7.0 QUIET) - set_package_properties(LibsnoreQt5 PROPERTIES TYPE OPTIONAL - URL "https://projects.kde.org/projects/playground/libs/snorenotify" - DESCRIPTION "a cross-platform notification framework" - PURPOSE "Enable support for the snorenotify framework" - ) - if (LibsnoreQt5_FOUND) - find_package(LibsnoreSettingsQt5 QUIET) - set_package_properties(LibsnoreSettingsQt5 PROPERTIES TYPE OPTIONAL + # snorenotify segfaults on startup on msys2 + # we don't check for just MSYS to support the Ninja generator + if(NOT (WIN32 AND (NOT $ENV{MSYSTEM} STREQUAL ""))) + find_package(LibsnoreQt5 0.7.0 QUIET) + set_package_properties(LibsnoreQt5 PROPERTIES TYPE OPTIONAL URL "https://projects.kde.org/projects/playground/libs/snorenotify" DESCRIPTION "a cross-platform notification framework" PURPOSE "Enable support for the snorenotify framework" ) + if (LibsnoreQt5_FOUND) + find_package(LibsnoreSettingsQt5 QUIET) + set_package_properties(LibsnoreSettingsQt5 PROPERTIES TYPE OPTIONAL + URL "https://projects.kde.org/projects/playground/libs/snorenotify" + DESCRIPTION "a cross-platform notification framework" + PURPOSE "Enable support for the snorenotify framework" + ) + endif() endif() if (WITH_WEBENGINE) @@ -330,7 +358,7 @@ endif() # Non-Qt-based packages ##################################################################### -find_package(Boost 1.56 REQUIRED) +find_package(Boost 1.54 REQUIRED) set_package_properties(Boost PROPERTIES TYPE REQUIRED URL "https://www.boost.org/" DESCRIPTION "Boost libraries for C++" @@ -390,25 +418,6 @@ if (BUILD_TESTING) process_cmake_cxx_flags() endif() -# Check for SSL support in Qt -##################################################################### - -cmake_push_check_state(RESET) -set(CMAKE_REQUIRED_LIBRARIES Qt5::Core) -check_cxx_source_compiles(" - #include \"qglobal.h\" - #if defined QT_NO_SSL - # error \"No SSL support\" - #endif - int main() {}" - HAVE_SSL) -cmake_pop_check_state() - -if (HAVE_SSL) - add_definitions(-DHAVE_SSL) -endif() -add_feature_info("SSL support in Qt" HAVE_SSL "Use secure network connections") - # Setup support for KDE Frameworks #####################################################################