X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=CMakeLists.txt;h=5a241dd01ad2a3dfdf074e5e6f559cd41c9ba68b;hp=9037c89b42840c35a93bf25fb87b65979c28c377;hb=c9d498c1d165c23cb854a8fbe9482a9289029071;hpb=02f740a0fed75951f474fc94c23901505a031c5b diff --git a/CMakeLists.txt b/CMakeLists.txt index 9037c89b..5a241dd0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,21 +150,27 @@ endif() # Set up Qt ##################################################################### +set(QT_MIN_VERSION "5.5.0") + +# Enable Qt deprecation warnings for Qt < 5.13 (on by default in newer versions) +add_definitions(-DQT_DEPRECATED_WARNINGS) + +# Disable all Qt APIs that were deprecated in 5.5 and before +add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050500) + # Find package dependencies # # Note that you can forcefully disable optional packages # using -DCMAKE_DISABLE_FIND_PACKAGE_=TRUE ##################################################################### -set(QT_MIN_VERSION "5.5.0") - # Required Qt components set(qt_components Core Network) 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 +180,22 @@ 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() + # Optional Qt components find_package(Qt5LinguistTools QUIET) @@ -207,19 +229,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 +356,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++" @@ -360,6 +386,12 @@ if (NOT WIN32) ) endif() +# Shared library support +##################################################################### + +option(ENABLE_SHARED "Build modules as shared libraries" ON) +add_feature_info(ENABLE_SHARED ENABLE_SHARED "Build modules as shared libraries") + # Setup unit testing ##################################################################### @@ -384,25 +416,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 #####################################################################