[CMake] FindQt.cmake for Qt4

Jens jens-devel at gmx.de
Tue Jun 14 02:43:26 EDT 2005


Hi CMake
On ftp.trolltech.com/qt/source you can download the release candidate of Qt4 
and the final Qt4 will be released end of June, but Qt4-support is still 
missing in CMake, isn´t it?
I posted a patch on 22th of April. How about applying these ideas?
It is quite simple to use.

1) Rename FindQt.cmake in the "Modules"-dir of CMake to FindQt3.cmake
2) Copy the attached Files to the "Modules"-dir (FindQt.cmake and 
FindQt4.cmake)
That way FindQt3.cmake hasn't changed (you just change the name).

More infos can be found on this mailinglist on the 22th of April (or search 
for "Qt4")

	Greetings
		Jens
-------------- next part --------------
########################################################################
#
# 	DO NOT CALL THIS DIRECTLY 
#	LET FindQt.cmake deside which FindQtX.cmake to include
#
#	Locates Qt4 include paths and libraries (called by FindQt.cmake)
#
########################################################################

# This module defines
# QT_INCLUDES			,list of paths to all include directories of Qt4
#
# QT_INCLUDE_DIR		,path to "include" of Qt4
# QT_QT_INCLUDE_DIR 		,path to "include/Qt" of Qt4
# QT_QT3SUPPORT_INCLUDE_DIR	,path to "include/Qt3Support" of Qt
# QT_QTASSISTANT_INCLUDE_DIR	,path to "include/QtAssistant" of Qt4
# QT_QTCORE_INCLUDE_DIR		,path to "include/QtCore" of Qt4	
# QT_QTDESIGNER_INCLUDE_DIR	,path to "include/QtDesigner" of Qt4
# QT_QTGUI_INCLUDE_DIR		,path to "include/QtGui" of Qt4
# QT_QTMOTIF_INCLUDE_DIR	,path to "include/QtMotif" of Qt4
# QT_QTNETWORK_INCLUDE_DIR	,path to "include/QtNetwork" of Qt4
# QT_QTNSPLUGIN_INCLUDE_DIR	,path to "include/QtNsPlugin" of Qt4
# QT_QTOPENGL_INCLUDE_DIR	,path to "include/QtOpenGL" of Qt4
# QT_QTSQL_INCLUDE_DIR		,path to "include/QtSql" of Qt4
# QT_QTXML_INCLUDE_DIR		,path to "include/QtXml" of Qt4
#
# QT_LIBRARIES	 		,list of path+filename of all optimized libs of Qt4
# QT_LIBRARIES_DEBUG		,list of path+filename of all debug libs of Qt4
# QT_LIBRARIES_TRYOPTIMIZED	,list of path+filename of all libs (try optimized, if not found try debug)
# QT_LIBRARIES_TRYDEBUG		,list of path+filename of all libs (try debug, if not found try optimized)
# QT_LIBRARY_DIR		,path to "lib" of Qt4
#
# QT_QT3SUPPORT_LIBRARY		,path+filename for Qt3Support library of Qt4
# QT_QTASSISTANT_LIBRARY	,path+filename for QtAssistant library of Qt4
# QT_QTCORE_LIBRARY		,path+filename for QtCore library of Qt4	
# QT_QTDESIGNER_LIBRARY		,path+filename for QtDesigner library of Qt4
# QT_QTGUI_LIBRARY		,path+filename for QtGui library of Qt4
# QT_QTMOTIF_LIBRARY		,path+filename for QtMotif library of Qt4
# QT_QTNETWORK_LIBRARY		,path+filename for QtNetwork library of Qt4
# QT_QTNSPLUGIN_LIBRARY		,path+filename for QtNsPlugin library of Qt4
# QT_QTOPENGL_LIBRARY		,path+filename for QtOpenGL library of Qt4
# QT_QTSQL_LIBRARY		,path+filename for QtSql library of Qt4
# QT_QTXML_LIBRARY		,path+filename for QtXml library of Qt4
#
# QT_QT3SUPPORT_LIBRARY_DEBUG	,path+filename for Qt3Support_debug library of Qt
# QT_QTASSISTANT_LIBRARY_DEBUG	,path+filename for QtAssistant_debug library of Qt4
# QT_QTCORE_LIBRARY_DEBUG	,path+filename for QtCore_debug library of Qt4	
# QT_QTDESIGNER_LIBRARY_DEBUG	,path+filename for QtDesigner_debug library of Qt4
# QT_QTGUI_LIBRARY_DEBUG	,path+filename for QtGui_debug library of Qt4
# QT_QTMOTIF_LIBRARY_DEBUG	,path+filename for QtMotif_debug library of Qt4
# QT_QTNETWORK_LIBRARY_DEBUG	,path+filename for QtNetwork_debug library of Qt4
# QT_QTNSPLUGIN_LIBRARY_DEBUG	,path+filename for QtNsPlugin_debug library of Qt4
# QT_QTOPENGL_LIBRARY_DEBUG	,path+filename for QtOpenGL_debug library of Qt4
# QT_QTSQL_LIBRARY_DEBUG	,path+filename for QtSql_debug library of Qt4
# QT_QTXML_LIBRARY_DEBUG	,path+filename for QtXml_debug library of Qt4
#
# QT_DEFINITIONS		,definitions to use when compiling code that uses Qt.
# QT_FOUND			,If false, don't try to use Qt (depends on existence of QT_LIBRARY_DIR and QT_INCLUDE_DIR)
#
# also defined, but not for general use are
# QT_MOC_EXECUTABLE		,where to find the moc tool.
# QT_UIC_EXECUTABLE		,where to find the uic tool.
#
# These are around for backwards compatibility 
# they will be set
# QT_WRAP_CPP			,set true if QT_MOC_EXECUTABLE is found
# QT_WRAP_UI			,set true if QT_UIC_EXECUTABLE is found
#
#
# These variables do _NOT_ have any effect anymore (compared to FindQt.cmake)
# QT_MT_REQUIRED		, Qt4 is now always multithreaded
#
# These variables are set to "" , because Qt structure changed (They make no sence in Qt4)
# QT_QT_LIBRARY			, Qt-Library is now splitt into different parts
# QT_QTMAIN_LIBRARY		, Qt-Library is now splitt into different parts


########################################
#
#	Setting the INCLUDE-Variables
#
########################################
# Set QT_QT_INCLUDE_DIR by searching for qglobal.h
FIND_PATH( QT_QT_INCLUDE_DIR qglobal.h
  $ENV{QTDIR}/include/Qt
  /usr/local/qt/include/Qt
  /usr/local/include/Qt
  /usr/lib/qt/include/Qt
  /usr/include/Qt
  /usr/share/qt4/include/Qt
  C:/Progra~1/qt/include/Qt
  /usr/include/qt4/Qt
  )

# Set QT_INCLUDE_DIR by removine "/Qt" in the string ${QT_QT_INCLUDE_DIR}
IF( QT_QT_INCLUDE_DIR )
	STRING( REGEX REPLACE "/Qt$" "" qt4_include_dir ${QT_QT_INCLUDE_DIR})
	SET( QT_INCLUDE_DIR ${qt4_include_dir})
ELSE( QT_QT_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find qglobal.h")
ENDIF( QT_QT_INCLUDE_DIR )

# Set QT_QT3SUPPORT_INCLUDE_DIR
FIND_PATH( QT_QT3SUPPORT_INCLUDE_DIR Qt3Support ${QT_INCLUDE_DIR}/Qt3Support)
IF( NOT QT_QT3SUPPORT_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/Qt3Support")
ENDIF( NOT QT_QT3SUPPORT_INCLUDE_DIR )

# Set QT_QTASSISTANT_INCLUDE_DIR
FIND_PATH( QT_QTASSISTANT_INCLUDE_DIR QtAssistant ${QT_INCLUDE_DIR}/QtAssistant)
IF( NOT QT_QTASSISTANT_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtAssistant")
ENDIF( NOT QT_QTASSISTANT_INCLUDE_DIR )

# Set QT_QTCORE_INCLUDE_DIR
FIND_PATH( QT_QTCORE_INCLUDE_DIR QtCore ${QT_INCLUDE_DIR}/QtCore)
IF( NOT QT_QTCORE_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtCore")
ENDIF( NOT QT_QTCORE_INCLUDE_DIR )

# Set QT_QTDESIGNER_INCLUDE_DIR
FIND_PATH( QT_QTDESIGNER_INCLUDE_DIR QtDesigner ${QT_INCLUDE_DIR}/QtDesigner)
IF( NOT QT_QTDESIGNER_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtDesigner")
ENDIF( NOT QT_QTDESIGNER_INCLUDE_DIR )

# Set QT_QTGUI_INCLUDE_DIR
FIND_PATH( QT_QTGUI_INCLUDE_DIR QtGui ${QT_INCLUDE_DIR}/QtGui)
IF( NOT QT_QTGUI_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtGui")
ENDIF( NOT QT_QTGUI_INCLUDE_DIR )

# Set QT_QTMOTIF_INCLUDE_DIR
FIND_PATH( QT_QTMOTIF_INCLUDE_DIR QtMotif ${QT_INCLUDE_DIR}/QtMotif)
IF( NOT QT_QTMOTIF_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtMotif")
ENDIF( NOT QT_QTMOTIF_INCLUDE_DIR )

# Set QT_QTNETWORK_INCLUDE_DIR
FIND_PATH( QT_QTNETWORK_INCLUDE_DIR QtNetwork ${QT_INCLUDE_DIR}/QtNetwork)
IF( NOT QT_QTNETWORK_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtNetwork")
ENDIF( NOT QT_QTNETWORK_INCLUDE_DIR )

# Set QT_QTNSPLUGIN_INCLUDE_DIR
FIND_PATH( QT_QTNSPLUGIN_INCLUDE_DIR QtNsPlugin ${QT_INCLUDE_DIR}/QtNsPlugin)
IF( NOT QT_QTNSPLUGIN_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtNsPlugin")
ENDIF( NOT QT_QTNSPLUGIN_INCLUDE_DIR )

# Set QT_QTOPENGL_INCLUDE_DIR
FIND_PATH( QT_QTOPENGL_INCLUDE_DIR QtOpenGL ${QT_INCLUDE_DIR}/QtOpenGL)
IF( NOT QT_QTOPENGL_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtOpenGL")
ENDIF( NOT QT_QTOPENGL_INCLUDE_DIR )

# Set QT_QTSQL_INCLUDE_DIR
FIND_PATH( QT_QTSQL_INCLUDE_DIR QtSql ${QT_INCLUDE_DIR}/QtSql)
IF( NOT QT_QTSQL_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtSql")
ENDIF( NOT QT_QTSQL_INCLUDE_DIR )

# Set QT_QTXML_INCLUDE_DIR
FIND_PATH( QT_QTXML_INCLUDE_DIR QtXml ${QT_INCLUDE_DIR}/QtXml)
IF( NOT QT_QTXML_INCLUDE_DIR )
	MESSAGE( STATUS "Could not find ${QT_INCLUDE_DIR}/QtXml")
ENDIF( NOT QT_QTXML_INCLUDE_DIR )

# Make variables changeble to the advanced user
MARK_AS_ADVANCED(
   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
)

# Set QT_INCLUDES
SET( QT_INCLUDES
${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} )


########################################
#
#	Setting the LIBRARY-Variables
#
########################################
# Set QT_QTCORE_LIBRARY  by searching for a lib with "QtCore." as part of the filename
FIND_LIBRARY(  QT_QTCORE_LIBRARY
	NAMES QtCore 
	PATHS 
	$ENV{QTDIR}/lib
	/usr/local/qt/lib
	/usr/local/lib
	/usr/lib/qt/lib
	/usr/lib
	/usr/share/qt4/lib
	C:/Progra~1/qt/lib
	/usr/lib/qt4 )

# Set QT_QTCORE_LIBRARY_DEBUG by searching for a lib with "QtCore_debug" as part of the filename
FIND_LIBRARY(  QT_QTCORE_LIBRARY_DEBUG
	NAMES QtCore_debug
	PATHS 
	$ENV{QTDIR}/lib
	/usr/local/qt/lib
	/usr/local/lib
	/usr/lib/qt/lib
	/usr/lib
	/usr/share/qt4/lib
	C:/Progra~1/qt/lib
	/usr/lib/qt4 )

# Set QT_LIBRARY_DIR
IF( QT_QTCORE_LIBRARY  )
	STRING(REGEX MATCH "[^/]*$" qt_qtcore "${QT_QTCORE_LIBRARY}")
	STRING(REGEX REPLACE "/${qt_qtcore}" "" QT_LIBRARY_DIR "${QT_QTCORE_LIBRARY}")
ELSE( QT_QTCORE_LIBRARY  )
	IF( QT_QTCORE_LIBRARY_DEBUG )
		STRING(REGEX MATCH "[^/]*$" qt_qtcore_debug "${QT_QTCORE_LIBRARY_DEBUG}")
		STRING(REGEX REPLACE "/${qt_qtcore_debug}" "" QT_LIBRARY_DIR "${QT_QTCORE_LIBRARY_DEBUG}")
	ENDIF( QT_QTCORE_LIBRARY_DEBUG )
ENDIF( QT_QTCORE_LIBRARY  )


# Set QT_QT3SUPPORT_LIBRARY
FIND_LIBRARY(QT_QT3SUPPORT_LIBRARY  Qt3Support ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QT3SUPPORT_LIBRARY_DEBUG Qt3Support_debug ${QT_LIBRARY_DIR})

# Set QT_QTASSISTANT_LIBRARY
FIND_LIBRARY(QT_QTASSISTANT_LIBRARY  QtAssistant ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QTASSISTANT_LIBRARY_DEBUG QtAssistant_debug ${QT_LIBRARY_DIR})

# Set QT_QTDESIGNER_LIBRARY
FIND_LIBRARY(QT_QTDESIGNER_LIBRARY  QtDesigner ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QTDESIGNER_LIBRARY_DEBUG QtDesigner_debug ${QT_LIBRARY_DIR})

# Set QT_QTGUI_LIBRARY
FIND_LIBRARY(QT_QTGUI_LIBRARY  QtGui ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QTGUI_LIBRARY_DEBUG QtGui_debug ${QT_LIBRARY_DIR})

# Set QT_QTMOTIF_LIBRARY
FIND_LIBRARY(QT_QTMOTIF_LIBRARY  QtMotif ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QTMOTIF_LIBRARY_DEBUG QtMotif_debug ${QT_LIBRARY_DIR})

# Set QT_QTNETWORK_LIBRARY
FIND_LIBRARY(QT_QTNETWORK_LIBRARY  QtNetwork ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QTNETWORK_LIBRARY_DEBUG QtNetwork_debug ${QT_LIBRARY_DIR})

# Set QT_QTNSPLUGIN_LIBRARY
FIND_LIBRARY(QT_QTNSPLUGIN_LIBRARY  QtNsPlugin ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QTNSPLUGIN_LIBRARY_DEBUG QtNsPlugin_debug ${QT_LIBRARY_DIR})

# Set QT_QTOPENGL_LIBRARY
FIND_LIBRARY(QT_QTOPENGL_LIBRARY  QtOpenGL ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QTOPENGL_LIBRARY_DEBUG QtOpenGL_debug ${QT_LIBRARY_DIR})

# Set QT_QTSQL_LIBRARY
FIND_LIBRARY(QT_QTSQL_LIBRARY  QtSql ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QTSQL_LIBRARY_DEBUG QtSql_debug ${QT_LIBRARY_DIR})

# Set QT_QTXML_LIBRARY
FIND_LIBRARY(QT_QTXML_LIBRARY  QtXml ${QT_LIBRARY_DIR})
FIND_LIBRARY(QT_QTXML_LIBRARY_DEBUG QtXml_debug ${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 
   QT_UIC_EXECUTABLE
   QT_MOC_EXECUTABLE
)

# Set QT_LIBRARIES
SET( QT_LIBRARIES
${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 
   QT_UIC_EXECUTABLE_DEBUG 
   QT_MOC_EXECUTABLE_DEBUG 
)
# Set QT_LIBRARIES_DEBUG
SET( QT_LIBRARIES_DEBUG
${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} )

# Set QT_LIBRARIES_TRYOPTIMIZED
IF(QT_QT3SUPPORT_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QT3SUPPORT_LIBRARY} )
ELSE(QT_QT3SUPPORT_LIBRARY)
	IF(QT_QT3SUPPORT_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QT3SUPPORT_LIBRARY_DEBUG} )	
	ENDIF(QT_QT3SUPPORT_LIBRARY_DEBUG)
ENDIF(QT_QT3SUPPORT_LIBRARY)

IF(QT_QTASSISTANT_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTASSISTANT_LIBRARY} )
ELSE(QT_QTASSISTANT_LIBRARY)
	IF(QT_QTASSISTANT_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTASSISTANT_LIBRARY_DEBUG} )	
	ENDIF(QT_QTASSISTANT_LIBRARY_DEBUG)
ENDIF(QT_QTASSISTANT_LIBRARY)

IF(QT_QTCORE_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTCORE_LIBRARY} )
ELSE(QT_QTCORE_LIBRARY)
	IF(QT_QTCORE_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTCORE_LIBRARY_DEBUG} )	
	ENDIF(QT_QTCORE_LIBRARY_DEBUG)
ENDIF(QT_QTCORE_LIBRARY)

IF(QT_QTDESIGNER_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTDESIGNER_LIBRARY} )
ELSE(QT_QTDESIGNER_LIBRARY)
	IF(QT_QTDESIGNER_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTDESIGNER_LIBRARY_DEBUG} )	
	ENDIF(QT_QTDESIGNER_LIBRARY_DEBUG)
ENDIF(QT_QTDESIGNER_LIBRARY)

IF(QT_QTGUI_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTGUI_LIBRARY} )
ELSE(QT_QTGUI_LIBRARY)
	IF(QT_QTGUI_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTGUI_LIBRARY_DEBUG} )	
	ENDIF(QT_QTGUI_LIBRARY_DEBUG)
ENDIF(QT_QTGUI_LIBRARY)

IF(QT_QTMOTIF_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTMOTIF_LIBRARY} )
ELSE(QT_QTMOTIF_LIBRARY)
	IF(QT_QTMOTIF_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTMOTIF_LIBRARY_DEBUG} )	
	ENDIF(QT_QTMOTIF_LIBRARY_DEBUG)
ENDIF(QT_QTMOTIF_LIBRARY)

IF(QT_QTNETWORK_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTNETWORK_LIBRARY} )
ELSE(QT_QTNETWORK_LIBRARY)
	IF(QT_QTNETWORK_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTNETWORK_LIBRARY_DEBUG} )	
	ENDIF(QT_QTNETWORK_LIBRARY_DEBUG)
ENDIF(QT_QTNETWORK_LIBRARY)

IF(QT_QTNSPLUGIN_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTNSPLUGIN_LIBRARY} )
ELSE(QT_QTNSPLUGIN_LIBRARY)
	IF(QT_QTNSPLUGIN_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTNSPLUGIN_LIBRARY_DEBUG} )	
	ENDIF(QT_QTNSPLUGIN_LIBRARY_DEBUG)
ENDIF(QT_QTNSPLUGIN_LIBRARY)

IF(QT_QTOPENGL_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTOPENGL_LIBRARY} )
ELSE(QT_QTOPENGL_LIBRARY)
	IF(QT_QTOPENGL_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTOPENGL_LIBRARY_DEBUG} )	
	ENDIF(QT_QTOPENGL_LIBRARY_DEBUG)
ENDIF(QT_QTOPENGL_LIBRARY)

IF(QT_QTSQL_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTSQL_LIBRARY} )
ELSE(QT_QTSQL_LIBRARY)
	IF(QT_QTSQL_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTSQL_LIBRARY_DEBUG} )	
	ENDIF(QT_QTSQL_LIBRARY_DEBUG)
ENDIF(QT_QTSQL_LIBRARY)

IF(QT_QTXML_LIBRARY)
	SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTXML_LIBRARY} )
ELSE(QT_QTXML_LIBRARY)
	IF(QT_QTXML_LIBRARY_DEBUG)
		SET( QT_LIBRARIES_TRYOPTIMIZED ${QT_LIBRARIES_TRYOPTIMIZED} ${QT_QTXML_LIBRARY_DEBUG} )	
	ENDIF(QT_QTXML_LIBRARY_DEBUG)
ENDIF(QT_QTXML_LIBRARY)

# Set QT_LIBRARIES_TRYDEBUG
IF(QT_QT3SUPPORT_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QT3SUPPORT_LIBRARY_DEBUG} )
ELSE(QT_QT3SUPPORT_LIBRARY_DEBUG)
	IF(QT_QT3SUPPORT_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QT3SUPPORT_LIBRARY} )	
	ENDIF(QT_QT3SUPPORT_LIBRARY)
ENDIF(QT_QT3SUPPORT_LIBRARY_DEBUG)

IF(QT_QTASSISTANT_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTASSISTANT_LIBRARY_DEBUG} )
ELSE(QT_QTASSISTANT_LIBRARY_DEBUG)
	IF(QT_QTASSISTANT_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTASSISTANT_LIBRARY} )	
	ENDIF(QT_QTASSISTANT_LIBRARY)
ENDIF(QT_QTASSISTANT_LIBRARY_DEBUG)

IF(QT_QTCORE_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTCORE_LIBRARY_DEBUG} )
ELSE(QT_QTCORE_LIBRARY_DEBUG)
	IF(QT_QTCORE_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTCORE_LIBRARY} )	
	ENDIF(QT_QTCORE_LIBRARY)
ENDIF(QT_QTCORE_LIBRARY_DEBUG)

IF(QT_QTDESIGNER_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTDESIGNER_LIBRARY_DEBUG} )
ELSE(QT_QTDESIGNER_LIBRARY_DEBUG)
	IF(QT_QTDESIGNER_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTDESIGNER_LIBRARY} )	
	ENDIF(QT_QTDESIGNER_LIBRARY)
ENDIF(QT_QTDESIGNER_LIBRARY_DEBUG)

IF(QT_QTGUI_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTGUI_LIBRARY_DEBUG} )
ELSE(QT_QTGUI_LIBRARY_DEBUG)
	IF(QT_QTGUI_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTGUI_LIBRARY} )	
	ENDIF(QT_QTGUI_LIBRARY)
ENDIF(QT_QTGUI_LIBRARY_DEBUG)

IF(QT_QTMOTIF_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTMOTIF_LIBRARY_DEBUG} )
ELSE(QT_QTMOTIF_LIBRARY_DEBUG)
	IF(QT_QTMOTIF_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTMOTIF_LIBRARY} )	
	ENDIF(QT_QTMOTIF_LIBRARY)
ENDIF(QT_QTMOTIF_LIBRARY_DEBUG)

IF(QT_QTNETWORK_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTNETWORK_LIBRARY_DEBUG} )
ELSE(QT_QTNETWORK_LIBRARY_DEBUG)
	IF(QT_QTNETWORK_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTNETWORK_LIBRARY} )	
	ENDIF(QT_QTNETWORK_LIBRARY)
ENDIF(QT_QTNETWORK_LIBRARY_DEBUG)

IF(QT_QTNSPLUGIN_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTNSPLUGIN_LIBRARY_DEBUG} )
ELSE(QT_QTNSPLUGIN_LIBRARY_DEBUG)
	IF(QT_QTNSPLUGIN_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTNSPLUGIN_LIBRARY} )	
	ENDIF(QT_QTNSPLUGIN_LIBRARY)
ENDIF(QT_QTNSPLUGIN_LIBRARY_DEBUG)

IF(QT_QTOPENGL_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTOPENGL_LIBRARY_DEBUG} )
ELSE(QT_QTOPENGL_LIBRARY_DEBUG)
	IF(QT_QTOPENGL_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTOPENGL_LIBRARY} )	
	ENDIF(QT_QTOPENGL_LIBRARY)
ENDIF(QT_QTOPENGL_LIBRARY_DEBUG)

IF(QT_QTSQL_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTSQL_LIBRARY_DEBUG} )
ELSE(QT_QTSQL_LIBRARY_DEBUG)
	IF(QT_QTSQL_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTSQL_LIBRARY} )	
	ENDIF(QT_QTSQL_LIBRARY)
ENDIF(QT_QTSQL_LIBRARY_DEBUG)

IF(QT_QTXML_LIBRARY_DEBUG)
	SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTXML_LIBRARY_DEBUG} )
ELSE(QT_QTXML_LIBRARY_DEBUG)
	IF(QT_QTXML_LIBRARY)
		SET( QT_LIBRARIES_TRYDEBUG ${QT_LIBRARIES_TRYDEBUG} ${QT_QTXML_LIBRARY} )	
	ENDIF(QT_QTXML_LIBRARY)
ENDIF(QT_QTXML_LIBRARY_DEBUG)


#######################################
#
#	Check the executables of Qt 
#	   ( moc, uic )
#
#######################################
FIND_PROGRAM(QT_MOC_EXECUTABLE 
  NAMES moc
  PATHS
  $ENV{QTDIR}/bin
  /usr/local/qt/bin
  /usr/local/bin
  /usr/lib/qt/bin
  /usr/bin
  /usr/share/qt4/bin
  C:/Progra~1/qt/bin
  /usr/bin/qt4
  )

IF(QT_MOC_EXECUTABLE)
   SET ( QT_WRAP_CPP "YES")
ELSE(QT_MOC_EXECUTABLE)
ENDIF(QT_MOC_EXECUTABLE)

FIND_PROGRAM(QT_UIC_EXECUTABLE 
  NAMES uic
  PATHS
  $ENV{QTDIR}/bin
  /usr/local/qt/bin
  /usr/local/bin
  /usr/lib/qt/bin
  /usr/bin
  /usr/share/qt4/bin
  C:/Progra~1/qt/bin
  /usr/bin/qt4
  )

IF(QT_UIC_EXECUTABLE)
   SET ( QT_WRAP_UI "YES")
ELSE(QT_UIC_EXECUTABLE)
ENDIF(QT_UIC_EXECUTABLE)


######################################
#
#	deside if Qt got found
#
######################################
# if the includes and libraries are found then we have it
IF(QT_LIBRARY_DIR AND QT_INCLUDE_DIR)
    SET( QT_FOUND "YES" )
ENDIF(QT_LIBRARY_DIR AND QT_INCLUDE_DIR)


#######################################
#
#	System dependent settings  
#
#######################################
# for unix add X11 stuff
IF(UNIX)
  FIND_PACKAGE(X11)
  IF (X11_FOUND)
    SET (QT_LIBRARIES ${QT_LIBRARIES} ${X11_LIBRARIES})
  ENDIF (X11_FOUND)
  IF (CMAKE_DL_LIBS)
    SET (QT_LIBRARIES ${QT_LIBRARIES} ${CMAKE_DL_LIBS})
  ENDIF (CMAKE_DL_LIBS)
ENDIF(UNIX)


#######################################
#
#	compatibility settings 
#
#######################################
# Backwards compatibility for CMake1.4 and 1.2
SET (QT_MOC_EXE ${QT_MOC_EXECUTABLE} )
SET (QT_UIC_EXE ${QT_UIC_EXECUTABLE} )

SET( QT_DEFINITIONS "")
SET( QT_QT_LIBRARY "")
SET( QT_QTMAIN_LIBRARY "")

-------------- next part --------------
# searches for the installed Qt-Version and desides which FindQtX.cmake to include
#
# This module uses
# QT_MAX_VERSION		,maximum Qt version set by YOU (e.g. "3.9.9")
#					if it is not set, we assume (for compatibility) the project is old and uses Qt < 4
#					Qt > 3 projects have to (!) set QT_MAX_VERSION (maximum by Trolltech is "15.7.99")
# QT_MIN_VERSION		,minimum Qt version set by YOU (e.g. "2.2.3")
#
# This modules sets
# QT_INST_MAJOR_VERSION		,major number of the installed Qt (e.g. Qt-Version = 4.2.6 => 4)
# QT_INST_MINOR_VERSION		,minor number of the installed Qt (e.g. Qt-Version = 4.2.6 => 2)
# QT_INST_PATCH_VERSION		,patch number of the installed Qt (e.g. Qt-Version = 4.2.6 => 6)
#

# compatibility to CMakeList.txt files for Qt3 projects
IF(NOT QT_MAX_VERSION)
	SET(QT_MAX_VERSION "3.9.9")
ENDIF(NOT QT_MAX_VERSION)

IF(NOT QT_MIN_VERSION)
	SET(QT_MIN_VERSION "0.0.1")
ENDIF(NOT QT_MIN_VERSION)

#######################################
#
#	search for qglobal.h
#
#######################################
# Qt4-like search paths
FIND_FILE( QT4_QGLOBAL_H_FILE qglobal.h
	$ENV{QTDIR}/include/Qt
	/usr/local/qt/include/Qt
	/usr/local/include/Qt
	/usr/lib/qt/include/Qt
	/usr/include/Qt
	/usr/share/qt4/include/Qt
	C:/Progra~1/qt/include/Qt )

IF(QT4_QGLOBAL_H_FILE)
	STRING(REGEX REPLACE "/include/Qt/qglobal.h" "" QT_DIR "${QT4_QGLOBAL_H_FILE}")
	SET(QT_QGLOBAL_H_FILE ${QT4_QGLOBAL_H_FILE})
ELSE(QT4_QGLOBAL_H_FILE)
	#Qt3-like search paths
	FIND_FILE( QT3_QGLOBAL_H_FILE qglobal.h
		/usr/include/qt4/Qt
		$ENV{QTDIR}/include
		/usr/local/qt/include
		/usr/local/include
		/usr/lib/qt/include
		/usr/include
		/usr/share/qt4/include
		C:/Progra~1/qt/include
		/usr/include/qt4 )
	IF(QT3_QGLOBAL_H_FILE)
		STRING(REGEX REPLACE "/include/qglobal.h" "" QT_DIR "${QT3_QGLOBAL_H_FILE}")
		SET(QT_QGLOBAL_H_FILE ${QT3_QGLOBAL_H_FILE})
	ENDIF(QT3_QGLOBAL_H_FILE)
ENDIF(QT4_QGLOBAL_H_FILE)

#check if qglobal.h is just a file with includes qglobal.h from elsewhere
FILE(READ ${QT_QGLOBAL_H_FILE} QT_QGLOBAL_H)
#BUG!!! the regexpression is not correct. 
#If "#include" and "qglobal.h" are in different lines it would be seen as ok
STRING(REGEX MATCH "#include.*qglobal.h" QT_QGLOBAL_H_LINK "${QT_QGLOBAL_H}")

IF( QT_QGLOBAL_H_LINK )
	STRING(REGEX REPLACE ".*\"" "" QT_QGLOBAL_H_LINK "${QT_QGLOBAL_H_LINK}")
	STRING(REGEX REPLACE "\\.\\./\\.\\." "${QT_DIR}" QT_QGLOBAL_H_FILE "${QT_QGLOBAL_H_LINK}")
ENDIF(QT_QGLOBAL_H_LINK)


#######################################################
#
#	read the version number of the installed of Qt
#
#######################################################
IF( QT_QGLOBAL_H_FILE )
	#extract the version string from qglobal.h
	FILE(READ ${QT_QGLOBAL_H_FILE} QT_QGLOBAL_H)

	# BUG !!! ... THE NEXT LINE DOES NOT WORK FOR Qt10 (even though that??s in far future) 
	# Trolltech defines in src/corelib/global/qglobal.h: QT_VERSION is (major << 16) + (minor << 8) + patch.
	
	STRING(REGEX MATCH "#define[\t ]+QT_VERSION_STR[\t ]+\"([0-9]+.[0-9]+.[0-9]+)" QT_QGLOBAL_H "${QT_QGLOBAL_H}")
	STRING(REGEX REPLACE ".*\"([0-9]+.[0-9]+.[0-9]+).*" "\\1" QT_QGLOBAL_H "${QT_QGLOBAL_H}")

	# Under windows the qt library (MSVC) has the format qt-mtXYZ where XYZ is the
	# version X.Y.Z, so we need to remove the dots from version (at least in Qt3)
	STRING(REGEX REPLACE "\\." "" qt_version_str "${QT_QGLOBAL_H}")

	STRING(REGEX REPLACE "([0-9]+)[0-9]+[0-9]+" "\\1" QT_INST_MAJOR_VERSION "${qt_version_str}")
	STRING(REGEX REPLACE "[0-9]+([0-9]+)[0-9]+" "\\1" QT_INST_MINOR_VERSION "${qt_version_str}")
	STRING(REGEX REPLACE "[0-9]+[0-9]+([0-9]+)" "\\1" QT_INST_PATCH_VERSION "${qt_version_str}")	

	# set qt_version_str back to x.y.z to make message outputs readable
	SET(qt_version_str "${QT_INST_MAJOR_VERSION}.${QT_INST_MINOR_VERSION}.${QT_INST_PATCH_VERSION}")
ELSE( QT_QGLOBAL_H_FILE )
	MESSAGE( FATAL_ERROR "Couldn??t find qglobal.h => Qt not installed.")
ENDIF( QT_QGLOBAL_H_FILE )
MESSAGE(STATUS "Found Qt-Version ${QT_INST_MAJOR_VERSION}.${QT_INST_MINOR_VERSION}.${QT_INST_PATCH_VERSION}")


#############################################################
#
#	check the minimum requirments set in QT_MIN_VERSION
#
#############################################################
IF (QT_MIN_VERSION)
	#now parse the parts of the user given version string into variables 
	STRING(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+$" min_qt_major_vers "${QT_MIN_VERSION}")
	IF (NOT min_qt_major_vers)
		MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MIN_VERSION}\", expected e.g. \"3.1.5\"")
	ENDIF (NOT min_qt_major_vers)
	
	STRING(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" min_qt_major_vers "${QT_MIN_VERSION}")
	STRING(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" min_qt_minor_vers "${QT_MIN_VERSION}")
	STRING(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" min_qt_patch_vers "${QT_MIN_VERSION}")
  # min = "6.5.4", qt = "3.2.1"
 
  # check major number
  IF (min_qt_major_vers GREATER QT_INST_MAJOR_VERSION)                  # (6 > 3) ?
    MESSAGE(  FATAL_ERROR "Qt major version too small (minimum: ${QT_MIN_VERSION}, found: ${qt_version_str})")            # yes
  ELSE  (min_qt_major_vers GREATER QT_INST_MAJOR_VERSION)               # no
    IF (min_qt_major_vers LESS QT_INST_MAJOR_VERSION)                  # (6 < 3) ?
      SET( QT_VERSION_BIG_ENOUGH "YES" )                      # yes
    ELSE (min_qt_major_vers LESS QT_INST_MAJOR_VERSION)                # ( 6==3) ?

      # check minor number
      IF (min_qt_minor_vers GREATER QT_INST_MINOR_VERSION)            # (5>2) ?
        MESSAGE(  FATAL_ERROR "Qt minor version too small (minimum: ${QT_MIN_VERSION}, found: ${qt_version_str})")      # yes
      ELSE (min_qt_minor_vers GREATER QT_INST_MINOR_VERSION)          # no
        IF (min_qt_minor_vers LESS QT_INST_MINOR_VERSION)            # (5<2) ?
          SET( QT_VERSION_BIG_ENOUGH "YES" )                # yes
        ELSE (min_qt_minor_vers LESS QT_INST_MINOR_VERSION)          # (5==2)

	  # check patch number
          IF (min_qt_patch_vers GREATER QT_INST_PATCH_VERSION)      # (4>1) ?
            MESSAGE( FATAL_ERROR "Qt patch level too small (minimum: ${QT_MIN_VERSION}, found: ${qt_version_str})")  # yes
          ELSE (min_qt_patch_vers GREATER QT_INST_PATCH_VERSION)    # (4>1) ?
            SET( QT_VERSION_BIG_ENOUGH "YES" )             # yes
          ENDIF (min_qt_patch_vers GREATER QT_INST_PATCH_VERSION)   # (4>1) ?
        ENDIF (min_qt_minor_vers LESS QT_INST_MINOR_VERSION)

      ENDIF (min_qt_minor_vers GREATER QT_INST_MINOR_VERSION)
    ENDIF (min_qt_major_vers LESS QT_INST_MAJOR_VERSION)
  ENDIF (min_qt_major_vers GREATER QT_INST_MAJOR_VERSION)
ENDIF (QT_MIN_VERSION)


#############################################################
#
#	check the maximum requirments set in QT_MAX_VERSION
#
#############################################################
IF(QT_MAX_VERSION) 
	#now parse the parts of the user given version string into variables 
	STRING(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+$" max_qt_major_vers "${QT_MAX_VERSION}")
	IF (NOT max_qt_major_vers)
		MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MAX_VERSION}\", expected e.g. \"4.1.5\"")
	ENDIF (NOT max_qt_major_vers)
  
	STRING(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" max_qt_major_vers "${QT_MAX_VERSION}")
	STRING(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" max_qt_minor_vers "${QT_MAX_VERSION}")
	STRING(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" max_qt_patch_vers "${QT_MAX_VERSION}")
  
	# max = "6.5.4", qt = "7.2.1"
 
	# check major number
	IF (max_qt_major_vers LESS QT_INST_MAJOR_VERSION)                  # (6 < 3) ?
	  MESSAGE(  FATAL_ERROR "Qt major version too big (maximum: ${QT_MAX_VERSION}, found: ${qt_version_str})") # yes
	ELSE  (max_qt_major_vers LESS QT_INST_MAJOR_VERSION)               # no
	  IF (max_qt_major_vers GREATER QT_INST_MAJOR_VERSION)                  # (6 < 3) ?
	    SET( QT_VERSION_SMALL_ENOUGH "YES" )                      # yes
	  ELSE (max_qt_major_vers GREATER QT_INST_MAJOR_VERSION)                # ( 6==3) ?

            # check minor number
	    IF (max_qt_minor_vers LESS QT_INST_MINOR_VERSION)            # (5 < 2) ?
	       MESSAGE(  FATAL_ERROR "Qt minor version too big (maximum: ${QT_MAX_VERSION}, found: ${qt_version_str})") # yes
	    ELSE (max_qt_minor_vers LESS QT_INST_MINOR_VERSION)          # no
	      IF (max_qt_minor_vers GREATER QT_INST_MINOR_VERSION)            # (5 < 2) ?
	        SET( QT_VERSION_SMALL_ENOUGH "YES" )                # yes
	      ELSE (max_qt_minor_vers GREATER QT_INST_MINOR_VERSION)          # (5==2)

	        # check patch number
	        IF (max_qt_patch_vers LESS QT_INST_PATCH_VERSION)      # (4 < 1) ?
	          MESSAGE( FATAL_ERROR "Qt patch level too big (maximum: ${QT_MAX_VERSION}, found: ${qt_version_str})")  # yes
	        ELSE (max_qt_patch_vers LESS QT_INST_PATCH_VERSION)    # (4 < 1) ?
	           SET( QT_VERSION_SMALL_ENOUGH "YES" )             # yes
	        ENDIF (max_qt_patch_vers LESS QT_INST_PATCH_VERSION)   # (4 > 1) ?

	      ENDIF (max_qt_minor_vers GREATER QT_INST_MINOR_VERSION)
	    ENDIF (max_qt_minor_vers LESS QT_INST_MINOR_VERSION)
	  ENDIF (max_qt_major_vers GREATER QT_INST_MAJOR_VERSION)
	ENDIF (max_qt_major_vers LESS QT_INST_MAJOR_VERSION)
ENDIF(QT_MAX_VERSION)


#####################################################
#
#	include the correct FindQtX.cmake file
#	(we only distinguage between major versions
#
#####################################################
IF(QT_VERSION_SMALL_ENOUGH AND QT_VERSION_BIG_ENOUGH)
	# Call package for Qt3
	IF( QT_INST_MAJOR_VERSION LESS 4)
		#BUG!!! should be FIND_PACKAGE(FindQt4.cmake) when part of CMake
		INCLUDE(${CMAKE_INSTALL_PREFIX}/share/CMake/Modules/FindQt3.cmake)
	ENDIF( QT_INST_MAJOR_VERSION LESS 4)
	# Call package for Qt4
	IF( QT_INST_MAJOR_VERSION GREATER 3 )
		IF( QT_INST_MAJOR_VERSION LESS 5)
			#BUG!!! should be FIND_PACKAGE(FindQt4.cmake) when part of CMake
			INCLUDE(${CMAKE_INSTALL_PREFIX}/share/CMake/Modules/FindQt4.cmake)
		ELSE( QT_INST_MAJOR_VERSION LESS 5)
			MESSAGE(FATAL_ERROR "Right now CMake supports only Qt-Versions less than 5.0.0")
		ENDIF( QT_INST_MAJOR_VERSION LESS 5)
	ENDIF( QT_INST_MAJOR_VERSION GREATER 3 )
ENDIF(QT_VERSION_SMALL_ENOUGH AND QT_VERSION_BIG_ENOUGH)







More information about the CMake mailing list