📄 findqt4.cmake
字号:
# - Find QT 4
# This module can be used to find Qt4.
# The most important issue is that the Qt4 qmake is available via the system path.
# 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
# QT_USE_QT3SUPPORT
# QT_USE_QTASSISTANT
# QT_USE_QTDESIGNER
# QT_USE_QTMOTIF
# QT_USE_QTMAIN
# QT_USE_QTNETWORK
# QT_USE_QTNSPLUGIN
# QT_USE_QTOPENGL
# QT_USE_QTSQL
# QT_USE_QTXML
# QT_USE_QTSVG
# QT_USE_QTTEST
# QT_USE_QTUITOOLS
# QT_USE_QTDBUS
# QT_USE_QTSCRIPT
# QT_USE_QTASSISTANTCLIENT
# QT_USE_QTHELP
# QT_USE_QTWEBKIT
# QT_USE_QTXMLPATTERNS
# 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.
#
# macro QT4_WRAP_CPP(outfiles inputfile ... OPTIONS ...)
# create moc code from a list of files containing Qt class with
# the Q_OBJECT declaration. Options may be given to moc, such as those found
# when executing "moc -help"
#
# macro QT4_WRAP_UI(outfiles inputfile ... OPTIONS ...)
# create code from a list of Qt designer ui files.
# Options may be given to uic, such as those found
# when executing "uic -help"
#
# macro QT4_ADD_RESOURCES(outfiles inputfile ... OPTIONS ...)
# create code from a list of Qt resource files.
# Options may be given to rcc, such as those found
# when executing "rcc -help"
#
# macro QT4_GENERATE_MOC(inputfile outputfile )
# creates a rule to run moc on infile and create outfile.
# Use this if for some reason QT4_WRAP_CPP() isn't appropriate, e.g.
# because you need a custom filename for the moc file or something similar.
#
# macro QT4_AUTOMOC(sourcefile1 sourcefile2 ... )
# This macro is still experimental.
# It can be used to have moc automatically handled.
# So if you have the files foo.h and foo.cpp, and in foo.h a
# a class uses the Q_OBJECT macro, moc has to run on it. If you don't
# want to use QT4_WRAP_CPP() (which is reliable and mature), you can insert
# #include "foo.moc"
# in foo.cpp and then give foo.cpp as argument to QT4_AUTOMOC(). This will the
# scan all listed files at cmake-time for such included moc files and if it finds
# them cause a rule to be generated to run moc at build time on the
# accompanying header file foo.h.
# If a source file has the SKIP_AUTOMOC property set it will be ignored by this macro.
#
# macro QT4_ADD_DBUS_INTERFACE(outfiles interface basename)
# create a the interface header and implementation files with the
# given basename from the given interface xml file and add it to
# the list of sources
#
# macro QT4_ADD_DBUS_INTERFACES(outfiles inputfile ... )
# create the interface header and implementation files
# for all listed interface xml files
# the name will be automatically determined from the name of the xml file
#
# macro QT4_ADD_DBUS_ADAPTOR(outfiles xmlfile parentheader parentclassname [basename] )
# create a dbus adaptor (header and implementation file) from the xml file
# describing the interface, and add it to the list of sources. The adaptor
# forwards the calls to a parent class, defined in parentheader and named
# parentclassname. The name of the generated files will be
# <basename>adaptor.{cpp,h} where basename is the basename of the xml file.
#
# macro QT4_GENERATE_DBUS_INTERFACE( header [interfacename] )
# generate the xml interface file from the given header.
# If the optional argument interfacename is omitted, the name of the
# interface file is constructed from the basename of the header with
# the suffix .xml appended.
#
# macro QT4_CREATE_TRANSLATION( qm_files sources ... ts_files ... )
# out: qm_files
# in: sources ts_files
# generates commands to create .ts (vie lupdate) and .qm
# (via lrelease) - files from sources. The ts files are
# created and/or updated in the source tree (unless given with full paths).
# The qm files are generated in the build tree.
# Updating the translations can be done by adding the qm_files
# to the source list of your library/executable, so they are
# always updated, or by adding a custom target to control when
# they get updated/generated.
#
# macro QT4_ADD_TRANSLATION( qm_files ts_files ... )
# out: qm_files
# in: ts_files
# generates commands to create .qm from .ts - files. The generated
# filenames can be found in qm_files. The ts_files
# must exists and are not updated in any way.
#
#
# QT_FOUND If false, don't try to use Qt.
# QT4_FOUND If false, don't try to use Qt 4.
#
# QT_VERSION_MAJOR The major version of Qt found.
# QT_VERSION_MINOR The minor version of Qt found.
# QT_VERSION_PATCH The patch version of Qt found.
#
# QT_EDITION Set to the edition of Qt (i.e. DesktopLight)
# QT_EDITION_DESKTOPLIGHT True if QT_EDITION == DesktopLight
# QT_QTCORE_FOUND True if QtCore was found.
# QT_QTGUI_FOUND True if QtGui was found.
# QT_QT3SUPPORT_FOUND True if Qt3Support was found.
# QT_QTASSISTANT_FOUND True if QtAssistant was found.
# QT_QTDBUS_FOUND True if QtDBus was found.
# QT_QTDESIGNER_FOUND True if QtDesigner was found.
# QT_QTDESIGNERCOMPONENTS True if QtDesignerComponents was found.
# QT_QTMOTIF_FOUND True if QtMotif was found.
# QT_QTNETWORK_FOUND True if QtNetwork was found.
# QT_QTNSPLUGIN_FOUND True if QtNsPlugin was found.
# QT_QTOPENGL_FOUND True if QtOpenGL was found.
# QT_QTSQL_FOUND True if QtSql was found.
# QT_QTXML_FOUND True if QtXml was found.
# QT_QTSVG_FOUND True if QtSvg was found.
# QT_QTSCRIPT_FOUND True if QtScript was found.
# QT_QTTEST_FOUND True if QtTest was found.
# QT_QTUITOOLS_FOUND True if QtUiTools was found.
# QT_QTASSISTANTCLIENT_FOUND True if QtAssistantClient was found.
# QT_QTHELP_FOUND True if QtHelp was found.
# QT_QTWEBKIT_FOUND True if QtWebKit was found.
# QT_QTXMLPATTERNS_FOUND True if QtXmlPatterns was found.
# QT_PHONON_FOUND True if phonon was found.
#
#
# QT_DEFINITIONS Definitions to use when compiling code that uses Qt.
# You do not need to use this if you include QT_USE_FILE.
# The QT_USE_FILE will also define QT_DEBUG and QT_NO_DEBUG
# to fit your current build type. Those are not contained
# in QT_DEFINITIONS.
#
# QT_INCLUDES List of paths to all include directories of
# Qt4 QT_INCLUDE_DIR and QT_QTCORE_INCLUDE_DIR are
# always in this variable even if NOTFOUND,
# all other INCLUDE_DIRS are
# only added if they are found.
# You do not need to use this if you include QT_USE_FILE.
#
#
# Include directories for the Qt modules are listed here.
# You do not need to use these variables if you include QT_USE_FILE.
#
# QT_INCLUDE_DIR Path to "include" of Qt4
# QT_QT_INCLUDE_DIR Path to "include/Qt"
# QT_QT3SUPPORT_INCLUDE_DIR Path to "include/Qt3Support"
# QT_QTASSISTANT_INCLUDE_DIR Path to "include/QtAssistant"
# QT_QTCORE_INCLUDE_DIR Path to "include/QtCore"
# QT_QTDESIGNER_INCLUDE_DIR Path to "include/QtDesigner"
# QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR Path to "include/QtDesigner"
# QT_QTDBUS_INCLUDE_DIR Path to "include/QtDBus"
# QT_QTGUI_INCLUDE_DIR Path to "include/QtGui"
# QT_QTMOTIF_INCLUDE_DIR Path to "include/QtMotif"
# QT_QTNETWORK_INCLUDE_DIR Path to "include/QtNetwork"
# QT_QTNSPLUGIN_INCLUDE_DIR Path to "include/QtNsPlugin"
# QT_QTOPENGL_INCLUDE_DIR Path to "include/QtOpenGL"
# QT_QTSQL_INCLUDE_DIR Path to "include/QtSql"
# QT_QTXML_INCLUDE_DIR Path to "include/QtXml"
# QT_QTSVG_INCLUDE_DIR Path to "include/QtSvg"
# QT_QTSCRIPT_INCLUDE_DIR Path to "include/QtScript"
# QT_QTTEST_INCLUDE_DIR Path to "include/QtTest"
# QT_QTASSISTANTCLIENT_INCLUDE_DIR Path to "include/QtAssistant"
# QT_QTHELP_INCLUDE_DIR Path to "include/QtHelp"
# QT_QTWEBKIT_INCLUDE_DIR Path to "include/QtWebKit"
# QT_QTXMLPATTERNS_INCLUDE_DIR Path to "include/QtXmlPatterns"
# QT_PHONON_INCLUDE_DIR Path to "include/phonon"
#
# QT_LIBRARY_DIR Path to "lib" of Qt4
#
# QT_PLUGINS_DIR Path to "plugins" for Qt4
#
#
# The Qt toolkit may contain both debug and release libraries.
# In that case, the following library variables will contain both.
# You do not need to use these variables if you include QT_USE_FILE,
# and use QT_LIBRARIES.
#
# QT_QT3SUPPORT_LIBRARY The Qt3Support library
# QT_QTASSISTANT_LIBRARY The QtAssistant library
# QT_QTCORE_LIBRARY The QtCore library
# QT_QTDBUS_LIBRARY The QtDBus library
# QT_QTDESIGNER_LIBRARY The QtDesigner library
# QT_QTDESIGNERCOMPONENTS_LIBRARY The QtDesignerComponents library
# QT_QTGUI_LIBRARY The QtGui library
# QT_QTMOTIF_LIBRARY The QtMotif library
# QT_QTNETWORK_LIBRARY The QtNetwork library
# QT_QTNSPLUGIN_LIBRARY The QtNsPLugin library
# QT_QTOPENGL_LIBRARY The QtOpenGL library
# QT_QTSQL_LIBRARY The QtSql library
# QT_QTXML_LIBRARY The QtXml library
# QT_QTSVG_LIBRARY The QtSvg library
# QT_QTSCRIPT_LIBRARY The QtScript library
# QT_QTTEST_LIBRARY The QtTest library
# QT_QTMAIN_LIBRARY The qtmain library for Windows
# QT_QTUITOOLS_LIBRARY The QtUiTools library
# QT_QTASSISTANTCLIENT_LIBRARY The QtAssistantClient library
# QT_QTHELP_LIBRARY The QtHelp library
# QT_QTWEBKIT_LIBRARY The QtWebKit library
# QT_QTXMLPATTERNS_LIBRARY The QtXmlPatterns library
# QT_PHONON_LIBRARY The phonon library
#
# 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.
# QT_UIC3_EXECUTABLE Where to find the uic3 tool.
# QT_RCC_EXECUTABLE Where to find the rcc tool
# QT_DBUSCPP2XML_EXECUTABLE Where to find the qdbuscpp2xml tool.
# QT_DBUSXML2CPP_EXECUTABLE Where to find the qdbusxml2cpp tool.
# QT_LUPDATE_EXECUTABLE Where to find the lupdate tool.
# QT_LRELEASE_EXECUTABLE Where to find the lrelease tool.
#
# QT_DOC_DIR Path to "doc" of Qt4
# QT_MKSPECS_DIR Path to "mkspecs" of Qt4
#
#
# 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 sense in Qt4)
# QT_QT_LIBRARY Qt-Library is now split
INCLUDE(CheckSymbolExists)
INCLUDE(MacroAddFileDependencies)
SET(QT_USE_FILE ${CMAKE_ROOT}/Modules/UseQt4.cmake)
SET( QT_DEFINITIONS "")
SET(QT4_INSTALLED_VERSION_TOO_OLD FALSE)
# macro for asking qmake to process pro files
MACRO(QT_QUERY_QMAKE outvar invar)
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake/tmp.pro
"message(CMAKE_MESSAGE<$$${invar}>)")
# Invoke qmake with the tmp.pro program to get the desired
# information. Use the same variable for both stdout and stderr
# to make sure we get the output on all platforms.
EXECUTE_PROCESS(COMMAND ${QT_QMAKE_EXECUTABLE}
WORKING_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake
OUTPUT_VARIABLE _qmake_query_output
RESULT_VARIABLE _qmake_result
ERROR_VARIABLE _qmake_query_output )
FILE(REMOVE_RECURSE
"${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake")
IF(_qmake_result)
MESSAGE(WARNING " querying qmake for ${invar}. qmake reported:\n${_qmake_query_output}")
ELSE(_qmake_result)
STRING(REGEX REPLACE ".*CMAKE_MESSAGE<([^>]*).*" "\\1" ${outvar} "${_qmake_query_output}")
ENDIF(_qmake_result)
ENDMACRO(QT_QUERY_QMAKE)
GET_FILENAME_COMPONENT(qt_install_version "[HKEY_CURRENT_USER\\Software\\trolltech\\Versions;DefaultQtVersion]" NAME)
# check for qmake
FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake qmake4 qmake-qt4 PATHS
"[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/bin"
"[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\4.0.0;InstallDir]/bin"
"[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]/bin"
$ENV{QTDIR}/bin
)
IF (QT_QMAKE_EXECUTABLE)
SET(QT4_QMAKE_FOUND FALSE)
EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION)
# check for qt3 qmake and then try and find qmake4 or qmake-qt4 in the path
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -