aboutsummaryrefslogtreecommitdiff
path: root/modules/FindQt4.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/FindQt4.cmake')
-rw-r--r--modules/FindQt4.cmake208
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