[Cmake-commits] [cmake-commits] hoffman committed FindQt4.cmake 1.96.2.22 1.96.2.23
cmake-commits at cmake.org
cmake-commits at cmake.org
Tue Mar 31 10:29:03 EDT 2009
Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv9765/Modules
Modified Files:
Tag: CMake-2-6
FindQt4.cmake
Log Message:
ENH: next RC
Index: FindQt4.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/FindQt4.cmake,v
retrieving revision 1.96.2.22
retrieving revision 1.96.2.23
diff -C 2 -d -r1.96.2.22 -r1.96.2.23
*** FindQt4.cmake 10 Feb 2009 22:28:07 -0000 1.96.2.22
--- FindQt4.cmake 31 Mar 2009 14:28:51 -0000 1.96.2.23
***************
*** 4,11 ****
# This qmake is then used to detect basically everything else.
# This module defines a number of key variables and macros.
! # First is QT_USE_FILE which is the path to a CMake file that can be included
! # to compile Qt 4 applications and libraries. By default, the QtCore and QtGui
! # libraries are loaded. This behavior can be changed by setting one or more
! # of the following variables to true before doing INCLUDE(${QT_USE_FILE}):
# QT_DONT_USE_QTCORE
# QT_DONT_USE_QTGUI
--- 4,21 ----
# This qmake is then used to detect basically everything else.
# This module defines a number of key variables and macros.
! # The variable QT_USE_FILE is set which is the path to a CMake file that can be included
! # to compile Qt 4 applications and libraries. It sets up the compilation
! # environment for include directories, preprocessor defines and populates a
! # QT_LIBRARIES variable.
! #
! # Typical usage could be something like:
! # find_package(Qt4 4.4.3 COMPONENTS QtCore QtGui QtXml REQUIRED )
! # include(${QT_USE_FILE})
! # add_executable(myexe main.cpp)
! # target_link_libraries(myexe ${QT_LIBRARIES})
! #
! # When using the components argument, QT_USE_QT* variables are automatically set
! # for the QT_USE_FILE to pick up. If one wishes to manually set them, the
! # available ones to set include:
# QT_DONT_USE_QTCORE
# QT_DONT_USE_QTGUI
***************
*** 33,49 ****
# QT_USE_PHONON
#
- # The file pointed to by QT_USE_FILE will set up your compile environment
- # by adding include directories, preprocessor defines, and populate a
- # QT_LIBRARIES variable containing all the Qt libraries and their dependencies.
- # Add the QT_LIBRARIES variable to your TARGET_LINK_LIBRARIES.
- #
- # Typical usage could be something like:
- # FIND_PACKAGE(Qt4)
- # SET(QT_USE_QTXML 1)
- # INCLUDE(${QT_USE_FILE})
- # ADD_EXECUTABLE(myexe main.cpp)
- # TARGET_LINK_LIBRARIES(myexe ${QT_LIBRARIES})
- #
- #
# There are also some files that need processing by some Qt tools such as moc
# and uic. Listed below are macros that may be used to process those files.
--- 43,46 ----
***************
*** 129,132 ****
--- 126,130 ----
#
#
+ # Below is a detailed list of variables that FindQt4.cmake sets.
# QT_FOUND If false, don't try to use Qt.
# QT4_FOUND If false, don't try to use Qt 4.
***************
*** 268,271 ****
--- 266,288 ----
# QT_QT_LIBRARY Qt-Library is now split
+
+ # Use FIND_PACKAGE( Qt4 COMPONENTS ... ) to enable modules
+ IF( Qt4_FIND_COMPONENTS )
+ FOREACH( component ${Qt4_FIND_COMPONENTS} )
+ STRING( TOUPPER ${component} _COMPONENT )
+ SET( QT_USE_${_COMPONENT} 1 )
+ ENDFOREACH( component )
+
+ # To make sure we don't use QtCore or QtGui when not in COMPONENTS
+ IF(NOT QT_USE_QTCORE)
+ SET( QT_DONT_USE_QTCORE 1 )
+ ENDIF(NOT QT_USE_QTCORE)
+
+ IF(NOT QT_USE_QTGUI)
+ SET( QT_DONT_USE_QTGUI 1 )
+ ENDIF(NOT QT_USE_QTGUI)
+
+ ENDIF( Qt4_FIND_COMPONENTS )
+
# If Qt3 has already been found, fail.
IF(QT_QT_LIBRARY)
***************
*** 373,376 ****
--- 390,405 ----
STRING(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" req_qt_patch_vers "${QT_MIN_VERSION}")
+ # Suppport finding at least a particular version, for instance FIND_PACKAGE( Qt4 4.4.3 )
+ # This implementation is a hack to avoid duplicating code and make sure we stay
+ # source-compatible with CMake 2.6.x
+ # For CMake 2.8, we should not set QT_MIN_VERSION but only use Qt4_FIND_VERSION_MAJOR,
+ # Qt4_FIND_VERSION_MINOR, etc
+ IF( Qt4_FIND_VERSION )
+ SET( QT_MIN_VERSION ${Qt4_FIND_VERSION} )
+ SET( req_qt_major_vers ${Qt4_FIND_VERSION_MAJOR} )
+ SET( req_qt_minor_vers ${Qt4_FIND_VERSION_MINOR} )
+ SET( req_qt_patch_vers ${Qt4_FIND_VERSION_PATCH} )
+ ENDIF( Qt4_FIND_VERSION )
+
IF (NOT req_qt_major_vers EQUAL 4)
MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MIN_VERSION}\", major version 4 is required, e.g. \"4.0.1\"")
***************
*** 386,389 ****
--- 415,432 ----
MATH(EXPR found_vers "${QT_VERSION_MAJOR}*10000 + ${QT_VERSION_MINOR}*100 + ${QT_VERSION_PATCH}")
+ # Support finding *exactly* a particular version, for instance FIND_PACKAGE( Qt4 4.4.3 EXACT )
+ # The 'else' branch should be removed for CMake 2.8
+ IF( Qt4_FIND_VERSION_EXACT )
+ IF(found_vers EQUAL req_vers)
+ SET( QT4_QMAKE_FOUND TRUE )
+ ELSE(found_vers EQUAL req_vers)
+ SET( QT4_QMAKE_FOUND FALSE )
+ IF (found_vers LESS req_vers)
+ SET(QT4_INSTALLED_VERSION_TOO_OLD TRUE)
+ ELSE (found_vers LESS req_vers)
+ SET(QT4_INSTALLED_VERSION_TOO_NEW TRUE)
+ ENDIF (found_vers LESS req_vers)
+ ENDIF(found_vers EQUAL req_vers)
+ ELSE( Qt4_FIND_VERSION_EXACT )
IF (found_vers LESS req_vers)
SET(QT4_QMAKE_FOUND FALSE)
***************
*** 392,395 ****
--- 435,439 ----
SET(QT4_QMAKE_FOUND TRUE)
ENDIF (found_vers LESS req_vers)
+ ENDIF( Qt4_FIND_VERSION_EXACT )
ENDIF (qt_version_tmp)
***************
*** 527,530 ****
--- 571,578 ----
SET(QT_QAXSERVER_LIBRARY_RELEASE NOTFOUND)
SET(QT_QAXSERVER_LIBRARY_DEBUG NOTFOUND)
+ IF(WIN32)
+ SET(QT_QTMAIN_LIBRARY_DEBUG NOTFOUND)
+ SET(QT_QTMAIN_LIBRARY_RELEASE NOTFOUND)
+ ENDIF(WIN32)
ENDIF(QT_QMAKE_CHANGED)
***************
*** 622,625 ****
--- 670,676 ----
CHECK_SYMBOL_EXISTS(Q_WS_MAC "QtCore/qglobal.h" Q_WS_MAC)
IF(Q_WS_MAC)
+ IF(QT_QMAKE_CHANGED)
+ UNSET(QT_MAC_USE_COCOA CACHE)
+ ENDIF(QT_QMAKE_CHANGED)
CHECK_SYMBOL_EXISTS(QT_MAC_USE_COCOA "QtCore/qconfig.h" QT_MAC_USE_COCOA)
ENDIF(Q_WS_MAC)
***************
*** 736,742 ****
IF(QT_QMAKE_CHANGED)
! SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY} CACHE FILEPATH "The Qt ${basename} library" FORCE)
ELSE(QT_QMAKE_CHANGED)
! SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY} CACHE FILEPATH "The Qt ${basename} library")
ENDIF(QT_QMAKE_CHANGED)
--- 787,793 ----
IF(QT_QMAKE_CHANGED)
! SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY} CACHE STRING "The Qt ${basename} library" FORCE)
ELSE(QT_QMAKE_CHANGED)
! SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY} CACHE STRING "The Qt ${basename} library")
ENDIF(QT_QMAKE_CHANGED)
***************
*** 799,826 ****
- # find moc and uic using qmake
- QT_QUERY_QMAKE(QT_MOC_EXECUTABLE_INTERNAL "QMAKE_MOC")
- QT_QUERY_QMAKE(QT_UIC_EXECUTABLE_INTERNAL "QMAKE_UIC")
-
- # make sure we have / and not \ as qmake gives on windows
- FILE(TO_CMAKE_PATH
- "${QT_MOC_EXECUTABLE_INTERNAL}" QT_MOC_EXECUTABLE_INTERNAL)
- # make sure we have / and not \ as qmake gives on windows
- FILE(TO_CMAKE_PATH
- "${QT_UIC_EXECUTABLE_INTERNAL}" QT_UIC_EXECUTABLE_INTERNAL)
-
- IF(QT_QMAKE_CHANGED)
- SET(QT_MOC_EXECUTABLE
- ${QT_MOC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The moc executable" FORCE)
- SET(QT_UIC_EXECUTABLE
- ${QT_UIC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The uic executable" FORCE)
- ELSE(QT_QMAKE_CHANGED)
- SET(QT_MOC_EXECUTABLE
- ${QT_MOC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The moc executable")
- SET(QT_UIC_EXECUTABLE
- ${QT_UIC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The uic executable")
- ENDIF(QT_QMAKE_CHANGED)
-
IF(QT_QMAKE_CHANGED)
SET(QT_UIC3_EXECUTABLE NOTFOUND)
SET(QT_RCC_EXECUTABLE NOTFOUND)
--- 850,856 ----
IF(QT_QMAKE_CHANGED)
+ SET(QT_UIC_EXECUTABLE NOTFOUND)
+ SET(QT_MOC_EXECUTABLE NOTFOUND)
SET(QT_UIC3_EXECUTABLE NOTFOUND)
SET(QT_RCC_EXECUTABLE NOTFOUND)
***************
*** 830,833 ****
--- 860,875 ----
SET(QT_LRELEASE_EXECUTABLE NOTFOUND)
ENDIF(QT_QMAKE_CHANGED)
+
+ FIND_PROGRAM(QT_MOC_EXECUTABLE
+ NAMES moc-qt4 moc
+ PATHS ${QT_BINARY_DIR}
+ NO_DEFAULT_PATH
+ )
+
+ FIND_PROGRAM(QT_UIC_EXECUTABLE
+ NAMES uic-qt4 uic
+ PATHS ${QT_BINARY_DIR}
+ NO_DEFAULT_PATH
+ )
FIND_PROGRAM(QT_UIC3_EXECUTABLE
***************
*** 856,860 ****
FIND_PROGRAM(QT_LUPDATE_EXECUTABLE
! NAMES lupdate
PATHS ${QT_BINARY_DIR}
NO_DEFAULT_PATH
--- 898,902 ----
FIND_PROGRAM(QT_LUPDATE_EXECUTABLE
! NAMES lupdate-qt4 lupdate
PATHS ${QT_BINARY_DIR}
NO_DEFAULT_PATH
***************
*** 862,866 ****
FIND_PROGRAM(QT_LRELEASE_EXECUTABLE
! NAMES lrelease
PATHS ${QT_BINARY_DIR}
NO_DEFAULT_PATH
--- 904,908 ----
FIND_PROGRAM(QT_LRELEASE_EXECUTABLE
! NAMES lrelease-qt4 lrelease
PATHS ${QT_BINARY_DIR}
NO_DEFAULT_PATH
***************
*** 1222,1226 ****
GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE)
GET_FILENAME_COMPONENT(qm ${_abs_FILE} NAME_WE)
! SET(qm "${CMAKE_CURRENT_BINARY_DIR}/${qm}.qm")
ADD_CUSTOM_COMMAND(OUTPUT ${qm}
--- 1264,1274 ----
GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE)
GET_FILENAME_COMPONENT(qm ${_abs_FILE} NAME_WE)
! GET_SOURCE_FILE_PROPERTY(output_location ${_abs_FILE} OUTPUT_LOCATION)
! IF(output_location)
! FILE(MAKE_DIRECTORY "${output_location}")
! SET(qm "${output_location}/${qm}.qm")
! ELSE(output_location)
! SET(qm "${CMAKE_CURRENT_BINARY_DIR}/${qm}.qm")
! ENDIF(output_location)
ADD_CUSTOM_COMMAND(OUTPUT ${qm}
***************
*** 1560,1568 ****
SET(QT_QMAKE_EXECUTABLE "${QT_QMAKE_EXECUTABLE}-NOTFOUND" CACHE FILEPATH "Invalid qmake found" FORCE)
IF(Qt4_FIND_REQUIRED)
IF(QT4_INSTALLED_VERSION_TOO_OLD)
! MESSAGE(FATAL_ERROR "The installed Qt version ${QTVERSION} is too old, at least version ${QT_MIN_VERSION} is required")
ELSE(QT4_INSTALLED_VERSION_TOO_OLD)
! MESSAGE( FATAL_ERROR "Qt qmake not found!")
ENDIF(QT4_INSTALLED_VERSION_TOO_OLD)
ELSE(Qt4_FIND_REQUIRED)
--- 1608,1628 ----
SET(QT_QMAKE_EXECUTABLE "${QT_QMAKE_EXECUTABLE}-NOTFOUND" CACHE FILEPATH "Invalid qmake found" FORCE)
+
+ # The code below is overly complex to make sure we do not break compatibility with CMake 2.6.x
+ # For CMake 2.8, it should be simplified by getting rid of QT4_INSTALLED_VERSION_TOO_OLD and
+ # QT4_INSTALLED_VERSION_TOO_NEW
IF(Qt4_FIND_REQUIRED)
IF(QT4_INSTALLED_VERSION_TOO_OLD)
! IF( Qt4_FIND_VERSION_EXACT )
! MESSAGE(FATAL_ERROR "The installed Qt version ${QTVERSION} is too old, version ${QT_MIN_VERSION} is required")
! ELSE( Qt4_FIND_VERSION_EXACT )
! MESSAGE(FATAL_ERROR "The installed Qt version ${QTVERSION} is too old, at least version ${QT_MIN_VERSION} is required")
! ENDIF( Qt4_FIND_VERSION_EXACT )
ELSE(QT4_INSTALLED_VERSION_TOO_OLD)
! IF( Qt4_FIND_VERSION_EXACT AND QT4_INSTALLED_VERSION_TOO_NEW )
! MESSAGE(FATAL_ERROR "The installed Qt version ${QTVERSION} is too new, version ${QT_MIN_VERSION} is required")
! ELSE( Qt4_FIND_VERSION_EXACT AND QT4_INSTALLED_VERSION_TOO_NEW )
! MESSAGE( FATAL_ERROR "Qt qmake not found!")
! ENDIF( Qt4_FIND_VERSION_EXACT AND QT4_INSTALLED_VERSION_TOO_NEW )
ENDIF(QT4_INSTALLED_VERSION_TOO_OLD)
ELSE(Qt4_FIND_REQUIRED)
More information about the Cmake-commits
mailing list