include(QuasselCompileSettings)
include(QuasselMacros)
+# Setting COMPILE_DEFINITIONS_<CONFIG> is deprecated since CMake 3.0 in favor of generator expressions.
+# These have existed since CMake 2.8.10; until we depend on that, we have to explicitly enable the old policy.
+if (CMAKE_MAJOR_VERSION GREATER 2)
+ cmake_policy(SET CMP0043 OLD)
+endif()
# Options and variables that can be set on the command line
#####################################################################
# 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"
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"
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)
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)