From: Mike Gelfand Date: Wed, 16 Dec 2015 18:46:06 +0000 (+0000) Subject: Bump CMake to 2.8.12, rework Qt use a little X-Git-Tag: 2.90~70 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7c951671bd876992665cd543434f89d3c8f10dfd;p=transmission Bump CMake to 2.8.12, rework Qt use a little --- diff --git a/CMakeLists.txt b/CMakeLists.txt index a827a5dd3..925229d22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/qt/CMakeLists.txt b/qt/CMakeLists.txt index 2cde64209..bacd06d15 100644 --- a/qt/CMakeLists.txt +++ b/qt/CMakeLists.txt @@ -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})