Bump CMake to 2.8.12, rework Qt use a little

This commit is contained in:
Mike Gelfand 2015-12-16 18:46:06 +00:00
parent dfc32f3ecd
commit 7c951671bd
2 changed files with 31 additions and 13 deletions

View 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)

View 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})