cmake: Remove boilerplate from HAVE_SSL check
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 2 Aug 2018 23:32:35 +0000 (01:32 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 18 Nov 2018 10:06:43 +0000 (11:06 +0100)
Instead of setting flags and includes manually (potentially
polluting global variables), just link the test program to
Qt5::Core directly and rely on property propagation.

CMakeLists.txt

index d9dc2a8..508456e 100644 (file)
@@ -352,16 +352,8 @@ if (NOT WIN32)
 endif()
 
 # Check for SSL support in Qt
-# As there's no easy way to get Qt's configuration in particular for Qt5, let's just compile
-# a small test program checking the defines. This works for both Qt4 and Qt5.
 cmake_push_check_state(RESET)
-set(CMAKE_REQUIRED_INCLUDES ${QT_INCLUDES} ${Qt5Core_INCLUDE_DIRS})
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
-
-if (Qt5_POSITION_INDEPENDENT_CODE)
-    set(CMAKE_REQUIRED_FLAGS "-fPIC -DQT_NO_VERSION_TAGGING")
-endif()
-
+set(CMAKE_REQUIRED_LIBRARIES Qt5::Core)
 check_cxx_source_compiles("
     #include \"qglobal.h\"
     #if defined QT_NO_SSL
@@ -371,6 +363,11 @@ check_cxx_source_compiles("
     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")
+
 # Additional compile settings
 #####################################################################
 
@@ -431,11 +428,6 @@ include(QuasselInstallDirs)
 # Various config-dependent checks and settings
 #####################################################################
 
-if (HAVE_SSL)
-    add_definitions(-DHAVE_SSL)
-endif()
-add_feature_info("SSL support in Qt" HAVE_SSL "Use secure network connections")
-
 # Check for syslog support
 if (NOT WIN32)
     check_include_file_cxx(syslog.h HAVE_SYSLOG)