X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=CMakeLists.txt;h=cd9f79d22db85ddd276e3d125b43fb1819bdb1fd;hb=a95ad2de573027f9bee36db972bcae4195168d0c;hp=9f4e235663ebc61ae8f3233287e24d091b7b7e0a;hpb=0fcf6adf1ca3a256bd0e5c1db40507874b9d65a8;p=quassel.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f4e2356..cd9f79d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -107,6 +107,12 @@ if (NOT EMBED_DEFAULT) 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 @@ -163,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}) @@ -206,19 +212,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) @@ -329,11 +339,19 @@ 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++" ) +# Older versions don't define the imported target +if (NOT TARGET Boost::boost) + add_library(Boost::boost INTERFACE IMPORTED GLOBAL) + if (Boost_INCLUDE_DIRS) + set_target_properties(Boost::boost PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}") + endif() +endif() find_package(ZLIB REQUIRED) set_package_properties(ZLIB PROPERTIES TYPE REQUIRED @@ -351,6 +369,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 #####################################################################