X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=CMakeLists.txt;h=a9a32ac7230791a4b06a1490077f147b5018c332;hb=9d53543b484d6700defb05eea7bc9e3d7c97c3c3;hp=26f967fdf4aa88e0db7a8f97b197134cce8dfe8c;hpb=9b8c497cdbb24f5df20870a06d3044332bd78ce4;p=quassel.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 26f967fd..a9a32ac7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,12 +145,18 @@ endif() # using -DCMAKE_DISABLE_FIND_PACKAGE_=TRUE ##################################################################### -if(USE_QT5) +if (USE_QT5) find_package(Qt5Core ${QT_MIN_VERSION} QUIET) set_package_properties(Qt5Core PROPERTIES TYPE REQUIRED URL "http://qt.digia.com" DESCRIPTION "contains core functionality for Qt" ) + # find_package without REQUIRED won't check for the version properly; also, older Qt5 versions + # used Qt5Core_VERSION_STRING... let's just make sure here that we bail out here if our Qt5 is not new enough. + if (NOT Qt5Core_VERSION OR Qt5Core_VERSION VERSION_LESS ${QT_MIN_VERSION}) + message(FATAL_ERROR "Could NOT find Qt5 >= version ${QT_MIN_VERSION}!") + endif() + find_package(Qt5Network QUIET) set_package_properties(Qt5Network PROPERTIES TYPE REQUIRED DESCRIPTION "the network module for Qt5" @@ -187,7 +193,7 @@ if(USE_QT5) DESCRIPTION "a multimedia abstraction library" PURPOSE "Required for audio notifications" ) - + find_package(LibsnoreQt5 QUIET) set_package_properties(LibsnoreQt5 PROPERTIES TYPE OPTIONAL URL "https://github.com/TheOneRing/Snorenotify" @@ -240,16 +246,23 @@ if(USE_QT5) DESCRIPTION "contains tools for handling translation files" PURPOSE "Required for having translations" ) - # Qt5 does not define a target for lconvert, so we need to find it ourselves + # Some Qt5 versions do not define a target for lconvert, so we need to find it ourselves if (Qt5LinguistTools_FOUND) if (NOT TARGET Qt5::lconvert AND TARGET Qt5::lrelease) get_target_property(_lrelease_location Qt5::lrelease LOCATION) get_filename_component(_lrelease_path ${_lrelease_location} PATH) find_program(QT_LCONVERT_EXECUTABLE NAMES lconvert-qt5 lconvert PATHS ${_lrelease_path} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) + elseif(TARGET Qt5::lconvert AND NOT Qt5_LCONVERT_EXECUTABLE) + # Newer Qt5 versions define the target, but not the Qt5_LCONVERT_EXECUTABLE variable for some reason + get_target_property(QT_LCONVERT_EXECUTABLE Qt5::lconvert LOCATION) endif() + # Compatibility with the Qt4 variables - set (QT_LRELEASE_EXECUTABLE ${Qt5_LRELEASE_EXECUTABLE}) - set (QT_LUPDATE_EXECUTABLE ${Qt5_LUPDATE_EXECUTABLE}) + set(QT_LRELEASE_EXECUTABLE ${Qt5_LRELEASE_EXECUTABLE}) + set(QT_LUPDATE_EXECUTABLE ${Qt5_LUPDATE_EXECUTABLE}) + if (Qt5_LCONVERT_EXECUTABLE) + set(QT_LCONVERT_EXECUTABLE ${Qt5_LCONVERT_EXECUTABLE}) + endif() endif() else(USE_QT5) @@ -447,10 +460,14 @@ endif(STATIC AND CMAKE_COMPILER_IS_GNUCXX) if(WIN32) link_libraries(imm32 winmm dbghelp Secur32) # missing by default :/ if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DNOMINMAX") set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBUGINFO "/debug /INCREMENTAL:YES /NODEFAULTLIB:libcmt /DEFAULTLIB:msvcrt") set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:YES /NODEFAULTLIB:libcmt") set(CMAKE_EXE_LINKER_FLAGS_DEBUGFULL "${CMAKE_EXE_LINKER_FLAGS_DEBUG}") link_libraries(Version dwmapi shlwapi) + if(USE_QT5) + set(QT_QTMAIN_LIBRARY Qt5::WinMain) + endif(USE_QT5) endif(MSVC) if(HAVE_SSL AND STATIC) find_package(OpenSSL REQUIRED)