Make sure our Qt5 is new enough
[quassel.git] / CMakeLists.txt
index 26f967f..d6b0d2e 100644 (file)
@@ -145,12 +145,18 @@ endif()
 # using -DCMAKE_DISABLE_FIND_PACKAGE_<PkgName>=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"
@@ -447,10 +453,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)