]> granicus.if.org Git - transmission/commitdiff
Bump CMake to 2.8.12, rework Qt use a little
authorMike Gelfand <mikedld@mikedld.com>
Wed, 16 Dec 2015 18:46:06 +0000 (18:46 +0000)
committerMike Gelfand <mikedld@mikedld.com>
Wed, 16 Dec 2015 18:46:06 +0000 (18:46 +0000)
CMakeLists.txt
qt/CMakeLists.txt

index a827a5dd3ee8ac65a7459dcf070af56e26f3cd82..925229d22a4db80c5cd2bfb4a2cb69485acf5fce 100644 (file)
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.5 FATAL_ERROR)
+cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
 project(transmission)
 
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
@@ -221,18 +221,40 @@ if(ENABLE_QT)
         cmake_policy(SET CMP0020 NEW)
     endif()
 
+    set(QT_TARGETS)
     if(USE_QT5)
-        set(TR_QT5_MODULES Core Gui Widgets Network DBus LinguistTools)
-        set(QT_FOUND ON)
-        foreach(M ${TR_QT5_MODULES})
-            find_package(Qt5${M} ${QT_IS_REQUIRED})
-            if(NOT Qt5${M}_FOUND)
-                set(QT_FOUND OFF)
+        set(QT5_REQUIRED_MODULES Core Gui Widgets Network DBus LinguistTools)
+        foreach(M ${QT5_REQUIRED_MODULES})
+            find_package(Qt5${M} QUIET)
+            if(Qt5${M}_FOUND)
+                if(NOT M STREQUAL "LinguistTools")
+                    list(APPEND QT_TARGETS Qt5::${M})
+                endif()
+            else()
+                set(QT_TARGETS)
                 break()
             endif()
         endforeach()
     else()
-        find_package(Qt4 4.6.2 ${QT_IS_REQUIRED} COMPONENTS QtCore QtGui QtNetwork QtDBus)
+        set(QT4_REQUIRED_MODULES QtCore QtGui QtNetwork QtDBus)
+        find_package(Qt4 4.6.2 QUIET COMPONENTS ${QT4_REQUIRED_MODULES})
+        foreach(M ${QT4_REQUIRED_MODULES})
+            string(TOUPPER "${M}" M_UPPER)
+            if(QT_${M_UPPER}_FOUND)
+                list(APPEND QT_TARGETS Qt4::${M})
+            else()
+                set(QT_TARGETS)
+                break()
+            endif()
+        endforeach()
+    endif()
+
+    set(QT_FOUND ON)
+    if(NOT QT_TARGETS)
+        if(QT_IS_REQUIRED)
+            message(FATAL_ERROR "Unable to find Qt libraries.")
+        endif()
+        set(QT_FOUND OFF)
     endif()
 
     tr_fixup_auto_option(ENABLE_QT QT_FOUND QT_IS_REQUIRED)
index 2cde642099421c565fc3864b55167caff179c329..bacd06d15b575be454914081f561298ce6940c01 100644 (file)
@@ -206,7 +206,7 @@ add_executable(${TR_NAME}-qt WIN32
 
 target_link_libraries(${TR_NAME}-qt
     ${TR_NAME}
-    ${QT_LIBRARIES}
+    ${QT_TARGETS}
     ${CURL_LIBRARIES}
     ${EVENT2_LIBRARIES}
 )
@@ -215,10 +215,6 @@ if(MSVC)
     tr_append_target_property(${TR_NAME}-qt LINK_FLAGS "/ENTRY:mainCRTStartup")
 endif()
 
-if(USE_QT5)
-    qt5_use_modules(${TR_NAME}-qt ${TR_QT5_MODULES})
-endif()
-
 set_target_properties(${TR_NAME}-qt PROPERTIES AUTOMOC TRUE)
 
 install(TARGETS ${TR_NAME}-qt DESTINATION ${CMAKE_INSTALL_BINDIR})