diff options
Diffstat (limited to 'modules/FindQt4.cmake')
-rw-r--r-- | modules/FindQt4.cmake | 208 |
1 files changed, 57 insertions, 151 deletions
diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index 4ed32e69..edc438a9 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -78,7 +78,6 @@ # # QT_QT3SUPPORT_LIBRARY_DEBUG Fullpath to Qt3Support_debug library # QT_QTASSISTANT_LIBRARY_DEBUG Fullpath to QtAssistant_debug library -# # QT_QTCORE_LIBRARY_DEBUG Fullpath to QtCore_debug # QT_QTDESIGNER_LIBRARY_DEBUG Fullpath to QtDesigner_debug # QT_QTGUI_LIBRARY_DEBUG Fullpath to QtGui_debug @@ -290,46 +289,10 @@ IF(QT4_QMAKE_FOUND) ) # Make variables changeble to the advanced user - MARK_AS_ADVANCED( - QT_LIBRARY_DIR - QT_INCLUDE_DIR - QT_QT_INCLUDE_DIR - QT_QT3SUPPORT_INCLUDE_DIR - QT_QTASSISTANT_INCLUDE_DIR - QT_QTCORE_INCLUDE_DIR - QT_QTDESIGNER_INCLUDE_DIR - QT_QTGUI_INCLUDE_DIR - QT_QTMOTIF_INCLUDE_DIR - QT_QTNETWORK_INCLUDE_DIR - QT_QTNSPLUGIN_INCLUDE_DIR - QT_QTOPENGL_INCLUDE_DIR - QT_QTSQL_INCLUDE_DIR - QT_QTXML_INCLUDE_DIR - ) + MARK_AS_ADVANCED( QT_LIBRARY_DIR QT_INCLUDE_DIR QT_QT_INCLUDE_DIR ) # Set QT_INCLUDES - SET( QT_INCLUDES - ${QT_INCLUDE_DIR} - ${QT_QTCORE_INCLUDE_DIR} - ${QT_QT_INCLUDE_DIR} - ${QT_QTGUI_INCLUDE_DIR} - ) - # append optional flags - MACRO(QT4_APPEND_INCLUDES_FLAG FLAG) - IF(${FLAG}) - SET(QT_INCLUDES ${QT_INCLUDES} "${${FLAG}}") - ENDIF(${FLAG}) - ENDMACRO(QT4_APPEND_INCLUDES_FLAG) - QT4_APPEND_INCLUDES_FLAG(QT_QT3SUPPORT_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTASSISTANT_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTDESIGNER_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTDESIGNER_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTMOTIF_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTNETWORK_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTNSPLUGIN_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTOPENGL_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTSQL_INCLUDE_DIR) - QT4_APPEND_INCLUDES_FLAG(QT_QTXML_INCLUDE_DIR) + SET( QT_INCLUDES ${QT_INCLUDE_DIR} ${QT_QT_INCLUDE_DIR} ) ######################################## @@ -443,116 +406,48 @@ IF(QT4_QMAKE_FOUND) FIND_LIBRARY(QT_QTDESIGNER_LIBRARY NAMES QtDesigner QtDesigner4 PATHS ${QT_LIBRARY_DIR}) FIND_LIBRARY(QT_QTDESIGNER_LIBRARY_DEBUG NAMES QtDesigner_debug QtDesignerd4 PATHS ${QT_LIBRARY_DIR}) - # Make variables changeble to the advanced user - MARK_AS_ADVANCED( - QT_QT3SUPPORT_LIBRARY - QT_QTASSISTANT_LIBRARY - QT_QTCORE_LIBRARY - QT_QTDESIGNER_LIBRARY - QT_QTGUI_LIBRARY - QT_QTMOTIF_LIBRARY - QT_QTNETWORK_LIBRARY - QT_QTNSPLUGIN_LIBRARY - QT_QTOPENGL_LIBRARY - QT_QTSQL_LIBRARY - QT_QTXML_LIBRARY ) - - # Make variables changeble to the advanced user - MARK_AS_ADVANCED( - QT_QT3SUPPORT_LIBRARY_DEBUG - QT_QTASSISTANT_LIBRARY_DEBUG - QT_QTCORE_LIBRARY_DEBUG - QT_QTDESIGNER_LIBRARY_DEBUG - QT_QTGUI_LIBRARY_DEBUG - QT_QTMOTIF_LIBRARY_DEBUG - QT_QTNETWORK_LIBRARY_DEBUG - QT_QTNSPLUGIN_LIBRARY_DEBUG - QT_QTOPENGL_LIBRARY_DEBUG - QT_QTSQL_LIBRARY_DEBUG - QT_QTXML_LIBRARY_DEBUG ) - ############################################ # # Check the existence of the libraries. # ############################################ - IF (QT_QTCORE_INCLUDE_DIR AND QT_QTCORE_LIBRARY) - SET(QT_QTCORE_FOUND 1) - IF (NOT QT_QTCORE_LIBRARY_DEBUG) - SET(QT_QTCORE_LIBRARY_DEBUG ${QT_QTCORE_LIBRARY}) - ENDIF (NOT QT_QTCORE_LIBRARY_DEBUG) - ENDIF (QT_QTCORE_INCLUDE_DIR AND QT_QTCORE_LIBRARY) - - IF (QT_QTGUI_INCLUDE_DIR AND QT_QTGUI_LIBRARY) - SET(QT_QTGUI_FOUND 1) - IF (NOT QT_QTGUI_LIBRARY_DEBUG) - SET(QT_QTGUI_LIBRARY_DEBUG ${QT_QTGUI_LIBRARY}) - ENDIF (NOT QT_QTGUI_LIBRARY_DEBUG) - ENDIF (QT_QTGUI_INCLUDE_DIR AND QT_QTGUI_LIBRARY) - - IF (QT_QT3SUPPORT_INCLUDE_DIR AND QT_QT3SUPPORT_LIBRARY) - SET(QT_QT3SUPPORT_FOUND 1) - IF (NOT QT_QT3SUPPORT_LIBRARY_DEBUG) - SET(QT_QT3SUPPORT_LIBRARY_DEBUG ${QT_QT3SUPPORT_LIBRARY}) - ENDIF (NOT QT_QT3SUPPORT_LIBRARY_DEBUG) - ENDIF (QT_QT3SUPPORT_INCLUDE_DIR AND QT_QT3SUPPORT_LIBRARY) - - IF (QT_QTASSISTANT_INCLUDE_DIR AND QT_QTASSISTANT_LIBRARY) - SET(QT_QTASSISTANT_FOUND 1) - IF (NOT QT_QTASSISTANT_LIBRARY_DEBUG) - SET(QT_QTASSISTANT_LIBRARY_DEBUG ${QT_QTASSISTANT_LIBRARY}) - ENDIF (NOT QT_QTASSISTANT_LIBRARY_DEBUG) - ENDIF (QT_QTASSISTANT_INCLUDE_DIR AND QT_QTASSISTANT_LIBRARY) - - IF (QT_QTDESIGNER_INCLUDE_DIR AND QT_QTDESIGNER_LIBRARY) - SET(QT_QTDESIGNER_FOUND 1) - IF (NOT QT_QTDESIGNER_LIBRARY_DEBUG) - SET(QT_QTDESIGNER_LIBRARY_DEBUG ${QT_QTDESIGNER_LIBRARY}) - ENDIF (NOT QT_QTDESIGNER_LIBRARY_DEBUG) - ENDIF (QT_QTDESIGNER_INCLUDE_DIR AND QT_QTDESIGNER_LIBRARY) - - IF (QT_QTMOTIF_INCLUDE_DIR AND QT_QTMOTIF_LIBRARY) - SET(QT_QTMOTIF_FOUND 1) - IF (NOT QT_QTMOTIF_LIBRARY_DEBUG) - SET(QT_QTMOTIF_LIBRARY_DEBUG ${QT_QTMOTIF_LIBRARY}) - ENDIF (NOT QT_QTMOTIF_LIBRARY_DEBUG) - ENDIF (QT_QTMOTIF_INCLUDE_DIR AND QT_QTMOTIF_LIBRARY) - - IF (QT_QTNETWORK_INCLUDE_DIR AND QT_QTNETWORK_LIBRARY) - SET(QT_QTNETWORK_FOUND 1) - IF (NOT QT_QTNETWORK_LIBRARY_DEBUG) - SET(QT_QTNETWORK_LIBRARY_DEBUG ${QT_QTNETWORK_LIBRARY}) - ENDIF (NOT QT_QTNETWORK_LIBRARY_DEBUG) - ENDIF (QT_QTNETWORK_INCLUDE_DIR AND QT_QTNETWORK_LIBRARY) - - IF (QT_QTNSPLUGIN_INCLUDE_DIR AND QT_QTNSPLUGIN_LIBRARY) - SET(QT_QTNSPLUGIN_FOUND 1) - IF (NOT QT_QTNSPLUGIN_LIBRARY_DEBUG) - SET(QT_QTNSPLUGIN_LIBRARY_DEBUG ${QT_QTNSPLUGIN_LIBRARY}) - ENDIF (NOT QT_QTNSPLUGIN_LIBRARY_DEBUG) - ENDIF (QT_QTNSPLUGIN_INCLUDE_DIR AND QT_QTNSPLUGIN_LIBRARY) - - IF (QT_QTOPENGL_INCLUDE_DIR AND QT_QTOPENGL_LIBRARY) - SET(QT_QTOPENGL_FOUND 1) - IF (NOT QT_QTOPENGL_LIBRARY_DEBUG) - SET(QT_QTOPENGL_LIBRARY_DEBUG ${QT_QTOPENGL_LIBRARY}) - ENDIF (NOT QT_QTOPENGL_LIBRARY_DEBUG) - ENDIF (QT_QTOPENGL_INCLUDE_DIR AND QT_QTOPENGL_LIBRARY) - - IF (QT_QTSQL_INCLUDE_DIR AND QT_QTSQL_LIBRARY) - SET(QT_QTSQL_FOUND 1) - IF (NOT QT_QTSQL_LIBRARY_DEBUG) - SET(QT_QTSQL_LIBRARY_DEBUG ${QT_QTSQL_LIBRARY}) - ENDIF (NOT QT_QTSQL_LIBRARY_DEBUG) - ENDIF (QT_QTSQL_INCLUDE_DIR AND QT_QTSQL_LIBRARY) - - IF (QT_QTXML_INCLUDE_DIR AND QT_QTXML_LIBRARY) - SET(QT_QTXML_FOUND 1) - IF (NOT QT_QTXML_LIBRARY_DEBUG) - SET(QT_QTXML_LIBRARY_DEBUG ${QT_QTXML_LIBRARY}) - ENDIF (NOT QT_QTXML_LIBRARY_DEBUG) - ENDIF (QT_QTXML_INCLUDE_DIR AND QT_QTXML_LIBRARY) + MACRO(_QT4_ADJUST_LIB_VARS basename) + IF (QT_${basename}_INCLUDE_DIR) + + # if only the release version was found, set the debug variable also to the release version + IF (QT_${basename}_LIBRARY AND NOT QT_${basename}_LIBRARY_DEBUG) + SET(QT_${basename}_LIBRARY_DEBUG ${QT_${basename}_LIBRARY}) + ENDIF (QT_${basename}_LIBRARY AND NOT QT_${basename}_LIBRARY_DEBUG) + + # if only the debug version was found, set the release variable also to the debug version + IF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY) + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_DEBUG}) + ENDIF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY) + + IF (QT_${basename}_LIBRARY) + SET(QT_${basename}_FOUND 1) + ENDIF (QT_${basename}_LIBRARY) + + #add the include directory to QT_INCLUDES + SET(QT_INCLUDES ${QT_INCLUDES} "${QT_${basename}_INCLUDE_DIR}") + ENDIF (QT_${basename}_INCLUDE_DIR ) + + # Make variables changeble to the advanced user + MARK_AS_ADVANCED(QT_${basename}_LIBRARY QT_${basename}_LIBRARY_DEBUG QT_${basename}_INCLUDE_DIR) + ENDMACRO(_QT4_ADJUST_LIB_VARS) + + _QT4_ADJUST_LIB_VARS(QTCORE) + _QT4_ADJUST_LIB_VARS(QTGUI) + _QT4_ADJUST_LIB_VARS(QT3SUPPORT) + _QT4_ADJUST_LIB_VARS(QTASSISTENT) + _QT4_ADJUST_LIB_VARS(QTDESIGNER) + _QT4_ADJUST_LIB_VARS(QTMOTIF) + _QT4_ADJUST_LIB_VARS(QTNETWORK) + _QT4_ADJUST_LIB_VARS(QTNSPLUGIN) + _QT4_ADJUST_LIB_VARS(QTOPENGL) + _QT4_ADJUST_LIB_VARS(QTSQL) + _QT4_ADJUST_LIB_VARS(QTXML) ####################################### # @@ -566,6 +461,9 @@ IF(QT4_QMAKE_FOUND) OUTPUT_VARIABLE qt_bins ) SET(QT_BINARY_DIR ${qt_bins} CACHE INTERNAL "") ENDIF (NOT QT_BINARY_DIR) + + # at first without the system paths, in order to prefer e.g. ${QTDIR}/bin/qmake over /usr/bin/qmake, + # which might be a Qt3 qmake FIND_PROGRAM(QT_MOC_EXECUTABLE NAMES moc PATHS @@ -581,6 +479,7 @@ IF(QT4_QMAKE_FOUND) NO_SYSTEM_PATH ) + # if qmake wasn't found in the specific dirs, now check the system path IF(NOT QT_MOC_EXECUTABLE) FIND_PROGRAM(QT_MOC_EXECUTABLE NAMES moc ) ENDIF(NOT QT_MOC_EXECUTABLE) @@ -603,6 +502,7 @@ IF(QT4_QMAKE_FOUND) /usr/bin/qt4 ) + # first the specific paths, then the system path, same as with qmake FIND_PROGRAM(QT_UIC_EXECUTABLE NAMES uic PATHS @@ -656,19 +556,25 @@ IF(QT4_QMAKE_FOUND) IF(${_filename} MATCHES "^/.+") SET(${_abs_filename} ${_filename}) ELSE(${_filename} MATCHES "^/.+") - SET(${_abs_filename} ${CMAKE_CURRENT_SOURCE_DIR}/${_filename}) +# if you are on windows and have problems converting relative paths to absolute paths +# check if un-commenting the following lines works for you and let me know, Alex, neundorf@kde.org +# IF(${_filename} MATCHES "^[a-zA-Z]:\\\\") +# SET(${_abs_filename} ${_filename}) +# ELSE(${_filename} MATCHES "^[a-zA-Z]:\\\\") + SET(${_abs_filename} ${CMAKE_CURRENT_SOURCE_DIR}/${_filename}) +# ENDIF(${_filename} MATCHES "^[a-zA-Z]:\\\\") ENDIF(${_filename} MATCHES "^/.+") - ENDMACRO(QT4_GET_ABS_PATH) + ENDMACRO(QT4_GET_ABS_PATH) - MACRO(QT4_GET_MOC_INC_DIRS _moc_INC_DIRS) - SET(${_moc_INC_DIRS}) - GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) + MACRO(QT4_GET_MOC_INC_DIRS _moc_INC_DIRS) + SET(${_moc_INC_DIRS}) + GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) - FOREACH(_current ${_inc_DIRS}) + FOREACH(_current ${_inc_DIRS}) SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current}) - ENDFOREACH(_current ${_inc_DIRS}) - ENDMACRO(QT4_GET_MOC_INC_DIRS) + ENDFOREACH(_current ${_inc_DIRS}) + ENDMACRO(QT4_GET_MOC_INC_DIRS) MACRO(QT4_GENERATE_MOC infile outfile ) # get include dirs |