diff options
| -rw-r--r-- | kde4/KDE4Macros.cmake | 92 | ||||
| -rw-r--r-- | kde4/kde4uic.cmake | 24 | ||||
| -rw-r--r-- | modules/FindQt4.cmake | 755 | ||||
| -rw-r--r-- | modules/FindX11.cmake | 151 | 
4 files changed, 990 insertions, 32 deletions
diff --git a/kde4/KDE4Macros.cmake b/kde4/KDE4Macros.cmake index 6ccdebc4..fae370b9 100644 --- a/kde4/KDE4Macros.cmake +++ b/kde4/KDE4Macros.cmake @@ -36,15 +36,22 @@ ENDMACRO(KDE4_ADD_FILE_DEPENDANCY)  #usage: KDE_ADD_COP_SKELS(foo_SRCS ${dcop_headers})  MACRO(KDE4_ADD_DCOP_SKELS _sources)     FOREACH (_current_FILE ${ARGN}) -      GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) -      SET(_skel ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel_skel.cpp) -      SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel.kidl) +      IF(${_current_FILE} MATCHES "^/.+") #abs path +         SET(_tmp_FILE ${_current_FILE}) +      ELSE(${_current_FILE} MATCHES "^/.+") +         SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) +      ENDIF(${_current_FILE} MATCHES "^/.+") + +      GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) + +      SET(_skel ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel.cpp) +      SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl)        ADD_CUSTOM_COMMAND(OUTPUT ${_kidl}           COMMAND ${KDE4_DCOPIDL_EXECUTABLE} -         ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} > ${_kidl} -         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} +         ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${_tmp_FILE} > ${_kidl} +         DEPENDS ${_tmp_FILE}        )        ADD_CUSTOM_COMMAND(OUTPUT ${_skel} @@ -72,12 +79,12 @@ MACRO(KDE4_ADD_DCOP_STUBS _sources)        SET(_stub_CPP ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.cpp)  #     SET(_stub_H ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.h) -      SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.kidl) +      SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl)        ADD_CUSTOM_COMMAND(OUTPUT ${_kidl}           COMMAND ${KDE4_DCOPIDL_EXECUTABLE} -         ARGS ${tmp_FILE} > ${_kidl} -         DEPENDS ${tmp_FILE} +         ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${_tmp_FILE} > ${_kidl} +         DEPENDS ${_tmp_FILE}        )        ADD_CUSTOM_COMMAND(OUTPUT ${_stub_CPP} @@ -144,7 +151,13 @@ ENDMACRO(KDE4_ADD_KCFG_FILES)  MACRO(KDE4_ADD_UI_FILES _sources )     FOREACH (_current_FILE ${ARGN}) -      GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) +      IF(${_current_FILE} MATCHES "^/.+") +         SET(_tmp_FILE ${_current_FILE}) +      ELSE(${_current_FILE} MATCHES "^/.+") +         SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) +      ENDIF(${_current_FILE} MATCHES "^/.+") + +      GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE)        SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h)        # we need to run uic and replace some things in the generated file @@ -152,41 +165,72 @@ MACRO(KDE4_ADD_UI_FILES _sources )        ADD_CUSTOM_COMMAND(OUTPUT ${_header}           COMMAND ${CMAKE_COMMAND}           ARGS +         -DKDE4_HEADER:BOOL=ON           -DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC_EXECUTABLE} -         -DKDE_UIC_FILE:FILEPATH=${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} +         -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE}           -DKDE_UIC_H_FILE:FILEPATH=${_header}           -DKDE_UIC_BASENAME:STRING=${_basename} -#         -DKDE_UIC_PLUGIN_DIR:FILEPATH="."           -P ${CMAKE_ROOT}/Modules/kde4uic.cmake -         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} +         DEPENDS ${_tmp_FILE}        )     ENDFOREACH (_current_FILE)  ENDMACRO(KDE4_ADD_UI_FILES) +MACRO(KDE4_GET_MOC_INC_DIRS _moc_INC_DIRS) +   SET(${_moc_INC_DIRS}) +   GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) + +   FOREACH(_current ${_inc_DIRS}) +      SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current}) +   ENDFOREACH(_current ${_inc_DIRS}) +ENDMACRO(KDE4_GET_MOC_INC_DIRS _moc_INC_DIRS) +  #create the implementation files from the ui files and add them to the list of sources  #usage: KDE_ADD_UI_FILES(foo_SRCS ${ui_files})  MACRO(KDE4_ADD_UI3_FILES _sources ) + +   KDE4_GET_MOC_INC_DIRS(_moc_INCS) +     FOREACH (_current_FILE ${ARGN}) -      GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) +      IF(${_current_FILE} MATCHES "^/.+") +         SET(_tmp_FILE ${_current_FILE}) +      ELSE(${_current_FILE} MATCHES "^/.+") +         SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) +      ENDIF(${_current_FILE} MATCHES "^/.+") + + +      GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE)        SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h)        SET(_src ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp)        SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) +#      ADD_CUSTOM_COMMAND(OUTPUT ${_header} +#         COMMAND ${QT_UIC3_EXECUTABLE} +#         ARGS  -nounload -o ${_header} ${_tmp_FILE} +#         DEPENDS ${_tmp_FILE} +#      ) +        ADD_CUSTOM_COMMAND(OUTPUT ${_header} -         COMMAND ${QT_UIC3_EXECUTABLE} -         ARGS  -nounload -o ${_header} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} -         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} +         COMMAND ${CMAKE_COMMAND} +         -DKDE3_HEADER:BOOL=ON +         -DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC3_EXECUTABLE} +         -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE} +         -DKDE_UIC_H_FILE:FILEPATH=${_header} +         -DKDE_UIC_BASENAME:STRING=${_basename} +         -DKDE_UIC_PLUGIN_DIR:FILEPATH="." +         -P ${CMAKE_ROOT}/Modules/kde4uic.cmake +         DEPENDS ${_tmp_FILE}        ) -      # we need to run uic3 and replace some things in the generated file +# we need to run uic3 and replace some things in the generated file        # this is done by executing the cmake script kde4uic.cmake        ADD_CUSTOM_COMMAND(OUTPUT ${_src}           COMMAND ${CMAKE_COMMAND}           ARGS -         -DKDE3:BOOL=ON +         -DKDE3_IMPL:BOOL=ON           -DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC3_EXECUTABLE} -         -DKDE_UIC_FILE:FILEPATH=${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} +         -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE}           -DKDE_UIC_CPP_FILE:FILEPATH=${_src}           -DKDE_UIC_H_FILE:FILEPATH=${_header}           -DKDE_UIC_BASENAME:STRING=${_basename} @@ -197,7 +241,7 @@ MACRO(KDE4_ADD_UI3_FILES _sources )        ADD_CUSTOM_COMMAND(OUTPUT ${_moc}           COMMAND ${QT_MOC_EXECUTABLE} -         ARGS -I ${QT_INCLUDE_DIR} ${_header} -o ${_moc} +         ARGS ${_moc_INCS} ${_header} -o ${_moc}           DEPENDS ${_header}        )        SET(${_sources} ${${_sources}} ${_src} ${_moc} ) @@ -205,12 +249,10 @@ MACRO(KDE4_ADD_UI3_FILES _sources )     ENDFOREACH (_current_FILE)  ENDMACRO(KDE4_ADD_UI3_FILES) -IF(UNIX) -   SET(_HACK_MOC_DEFINE -DQ_WS_X11 -DQ_OS_UNIX) -ENDIF(UNIX) -  MACRO(KDE4_AUTOMOC) +   KDE4_GET_MOC_INC_DIRS(_moc_INCS) +     SET(_matching_FILES )     FOREACH (_current_FILE ${ARGN}) @@ -239,7 +281,7 @@ MACRO(KDE4_AUTOMOC)  #               MESSAGE(STATUS "----- moc: ${_moc}")                 ADD_CUSTOM_COMMAND(OUTPUT ${_moc}                    COMMAND ${QT_MOC_EXECUTABLE} -                  ARGS ${_HACK_MOC_DEFINE} ${_header} -o ${_moc} +                  ARGS ${_moc_INCS} ${_header} -o ${_moc}                    DEPENDS ${_header}                 ) diff --git a/kde4/kde4uic.cmake b/kde4/kde4uic.cmake index c51a8ae5..60fa6b9b 100644 --- a/kde4/kde4uic.cmake +++ b/kde4/kde4uic.cmake @@ -1,6 +1,6 @@  #using a ui3 file with uic3 -IF(KDE3) +IF(KDE3_IMPL)    EXEC_PROGRAM(${KDE_UIC_EXECUTABLE} ARGS      -nounload -tr tr2i18n @@ -8,19 +8,30 @@ IF(KDE3)      ${KDE_UIC_FILE}      OUTPUT_VARIABLE _uic_CONTENTS    ) +ENDIF(KDE3_IMPL) + + +IF(KDE3_HEADER) + +  EXEC_PROGRAM(${KDE_UIC_EXECUTABLE} ARGS +    -nounload -tr tr2i18n +    ${KDE_UIC_FILE} +    OUTPUT_VARIABLE _uic_CONTENTS +  ) +   SET(KDE_UIC_CPP_FILE ${KDE_UIC_H_FILE}) +ENDIF(KDE3_HEADER)  # the kde4 branch -ELSE(KDE3) +IF (KDE4_HEADER)    EXEC_PROGRAM(${KDE_UIC_EXECUTABLE} ARGS      -tr tr2i18n -    -L ${KDE_UIC_PLUGIN_DIR} -    -impl ${KDE_UIC_H_FILE}      ${KDE_UIC_FILE}      OUTPUT_VARIABLE _uic_CONTENTS    ) -ENDIF(KDE3) +   SET(KDE_UIC_CPP_FILE ${KDE_UIC_H_FILE}) +ENDIF (KDE4_HEADER)  #replace tr218n("") with QString::null to avoid waring from KLocale @@ -30,6 +41,5 @@ STRING(REGEX REPLACE "tr2i18n\\(\"\", \"\"\\)" "QString::null" _uic_CONTENTS "${  #replace image15_data with img15_filename to make enable_final work  STRING(REGEX REPLACE "image([0-9]+)_data" "img\\1_${KDE_UIC_BASENAME}" _uic_CONTENTS "${_uic_CONTENTS}") -FILE(WRITE ${KDE_UIC_CPP_FILE} "#include <kdialog.h>\n#include <klocale.h>\n\n") -FILE(APPEND ${KDE_UIC_CPP_FILE} "${_uic_CONTENTS}") +FILE(WRITE ${KDE_UIC_CPP_FILE} "#include <kdialog.h>\n#include <klocale.h>\n\n${_uic_CONTENTS}\n") diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake new file mode 100644 index 00000000..47ac15d8 --- /dev/null +++ b/modules/FindQt4.cmake @@ -0,0 +1,755 @@ +# - Find QT 4 +# This module can be used to find Qt4. +# 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: +#                    QT_DONT_USE_QTCORE +#                    QT_DONT_USE_QTGUI +#                    QT_USE_QT3SUPPORT +#                    QT_USE_QTASSISTANT +#                    QT_USE_QTDESIGNER +#                    QT_USE_QTMOTIF +#                    QT_USE_QTNETWORK +#                    QT_USE_QTNSPLUGIN +#                    QT_USE_QTOPENGL +#                    QT_USE_QTSQL +#                    QT_USE_QTXML +# All the libraries required are stored in a variable called QT_LIBRARIES. +# Add this variable to your TARGET_LINK_LIBRARIES. +# +#  macro QT4_WRAP_CPP(outfiles inputfile ... ) +#  macro QT4_WRAP_UI(outfiles inputfile ... ) +#  macro QT4_ADD_RESOURCE(outfiles inputfile ... ) +# +#  QT_FOUND         If false, don't try to use Qt. +#  QT4_FOUND        If false, don't try to use Qt 4. +# +#  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_QTDESIGNER_FOUND    True if QtDesigner 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_DEFINITIONS   Definitions to use when compiling code that +#                   uses Qt. +# +#  QT_INCLUDES      List of paths to all include directories of +#                   Qt4 QT_INCLUDE_DIR, QT_QT_INCLUDE_DIR, +#                   and QT_QTGUI_INCLUDE_DIR are +#                   always in this variable even if NOTFOUND, +#                   all other INCLUDE_DIRS are +#                   only added if they are found. +# +#  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_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_LIBRARY_DIR              Path to "lib" of Qt4 +# +#  QT_QT3SUPPORT_LIBRARY       Fullpath to Qt3Support library +#  QT_QTASSISTANT_LIBRARY      Fullpath to QtAssistant library +#  QT_QTCORE_LIBRARY           Fullpath to QtCore library +#  QT_QTDESIGNER_LIBRARY       Fullpath to QtDesigner library +#  QT_QTGUI_LIBRARY            Fullpath to QtGui library +#  QT_QTMOTIF_LIBRARY          Fullpath to QtMotif library +#  QT_QTNETWORK_LIBRARY        Fullpath to QtNetwork library +#  QT_QTNSPLUGIN_LIBRARY       Fullpath to QtNsPlugin library +#  QT_QTOPENGL_LIBRARY         Fullpath to QtOpenGL library +#  QT_QTSQL_LIBRARY            Fullpath to QtSql library +#  QT_QTXML_LIBRARY            Fullpath to QtXml library +# +#  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 +#  QT_QTMOTIF_LIBRARY_DEBUG     Fullpath to QtMotif_debug +#  QT_QTNETWORK_LIBRARY_DEBUG   Fullpath to QtNetwork_debug +#  QT_QTNSPLUGIN_LIBRARY_DEBUG  Fullpath to QtNsPlugin_debug +#  QT_QTOPENGL_LIBRARY_DEBUG    Fullpath to QtOpenGL_debug +#  QT_QTSQL_LIBRARY_DEBUG       Fullpath to QtSql_debug +#  QT_QTXML_LIBRARY_DEBUG       Fullpath to QtXml_debug +# +# 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 +# +# 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 splitt +#  QT_QTMAIN_LIBRARY    Qt-Library is now splitt + +SET(QT_USE_FILE ${CMAKE_ROOT}/Modules/UseQt4.cmake) + +SET( QT_DEFINITIONS "") + +IF (WIN32) +  SET(QT_DEFINITIONS -DQT_DLL) +ENDIF(WIN32) + +FILE(GLOB GLOB_TEMP_VAR /usr/local/Trolltech/Qt-4*/) +SET(GLOB_TEMP_VAR) +IF(GLOB_TEMP_VAR) +  SET(QT4_PATHS ${QT4_PATHS} ${GLOB_TEMP_VAR}) +ENDIF(GLOB_TEMP_VAR) +SET(GLOB_TEMP_VAR) +FILE(GLOB GLOB_TEMP_VAR /usr/local/qt-x11-commercial-4*/bin/) +IF(GLOB_TEMP_VAR) +  SET(QT4_PATHS ${QT4_PATHS} ${GLOB_TEMP_VAR}) +ENDIF(GLOB_TEMP_VAR) +# check for qmake +FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake PATHS +  "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/bin" +  "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\4.0.0;InstallDir]/bin" +  $ENV{QTDIR}/bin +  ${QT4_PATHS} +) + +IF(QT_QMAKE_EXECUTABLE) +  EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" +    OUTPUT_VARIABLE QTVERSION) +  IF(QTVERSION MATCHES "4.*") +    SET(QT4_QMAKE_FOUND TRUE) +  ENDIF(QTVERSION MATCHES "4.*") +ENDIF(QT_QMAKE_EXECUTABLE) + +IF(QT4_QMAKE_FOUND) +  # Set QT_LIBRARY_DIR +  IF(NOT QT_LIBRARY_DIR) +    EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} +      ARGS "-query QT_INSTALL_LIBS" +      OUTPUT_VARIABLE QT_LIBRARY_DIR_TMP ) +    IF(EXISTS "${QT_LIBRARY_DIR_TMP}") +      SET(QT_LIBRARY_DIR ${QT_LIBRARY_DIR_TMP} CACHE PATH "Qt library dir") +    ELSE(EXISTS "${QT_LIBRARY_DIR_TMP}") +      MESSAGE("Warning: QT_QMAKE_EXECUTABLE reported QT_INSTALL_LIBS as ${QT_LIBRARY_DIR_TMP}") +      MESSAGE("Warning: ${QT_LIBRARY_DIR_TMP} does not exist, Qt must not be installed correctly.") +    ENDIF(EXISTS "${QT_LIBRARY_DIR_TMP}") +  ENDIF(NOT QT_LIBRARY_DIR) + +  IF (APPLE) +    IF (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) +      SET(QT_USE_FRAMEWORKS ON +        CACHE BOOL "Set to ON if Qt build uses frameworks.") +    ELSE (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) +      SET(QT_USE_FRAMEWORKS OFF +        CACHE BOOL "Set to ON if Qt build uses frameworks.") +    ENDIF (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) + +    MARK_AS_ADVANCED(QT_USE_FRAMEWORKS) +  ENDIF (APPLE) + +  ######################################## +  # +  #       Setting the INCLUDE-Variables +  # +  ######################################## +  IF (NOT QT_HEADERS_DIR) +    # Set QT_QT_INCLUDE_DIR by searching for qglobal.h +    IF(QT_QMAKE_EXECUTABLE) +      EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} +        ARGS "-query QT_INSTALL_HEADERS" +        OUTPUT_VARIABLE qt_headers ) +      SET(QT_HEADERS_DIR ${qt_headers} CACHE INTERNAL "") +    ENDIF(QT_QMAKE_EXECUTABLE) +  ENDIF (NOT QT_HEADERS_DIR) +  FILE(GLOB GLOB_TEMP_VAR /usr/local/qt-x11-commercial-3*/include/Qt/) +  SET(QT_PATH_INCLUDE ${GLOB_TEMP_VAR}) +  FILE(GLOB GLOB_TEMP_VAR /usr/local/Trolltech/Qt-4*/include/Qt/) +  SET(QT_PATH_INCLUDE ${GLOB_TEMP_VAR}) +  FIND_PATH( QT_QT_INCLUDE_DIR qglobal.h +    "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/include/Qt" +    ${QT_PATH_INCLUDE} +    ${QT_HEADERS_DIR}/Qt +    ${QT_LIBRARY_DIR}/QtCore.framework/Headers +    $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:/Program Files/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 AND NOT QT_INCLUDE_DIR) +    IF (QT_USE_FRAMEWORKS) +      SET(QT_INCLUDE_DIR ${QT_HEADERS_DIR}) +    ELSE (QT_USE_FRAMEWORKS) +      STRING( REGEX REPLACE "/Qt$" "" qt4_include_dir ${QT_QT_INCLUDE_DIR}) +      SET( QT_INCLUDE_DIR ${qt4_include_dir} CACHE PATH "") +    ENDIF (QT_USE_FRAMEWORKS) +  ENDIF( QT_QT_INCLUDE_DIR AND NOT QT_INCLUDE_DIR) +  IF( NOT QT_INCLUDE_DIR) +    IF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) +      MESSAGE( SEND_ERROR "Could not find qglobal.h") +    ENDIF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) +  ENDIF( NOT QT_INCLUDE_DIR) + +  IF (QT_USE_FRAMEWORKS) +    SET(QT_DEFINITIONS ${QT_DEFINITIONS} +      -F${QT_LIBRARY_DIR} +      ) +  ENDIF (QT_USE_FRAMEWORKS) + +  # Set QT_QT3SUPPORT_INCLUDE_DIR +  FIND_PATH( QT_QT3SUPPORT_INCLUDE_DIR Qt3Support +    ${QT_INCLUDE_DIR}/Qt3Support +    ${QT_LIBRARY_DIR}/Qt3Support.framework/Headers +    ) + +  # Set QT_QTCORE_INCLUDE_DIR +  FIND_PATH( QT_QTCORE_INCLUDE_DIR QtCore +    ${QT_INCLUDE_DIR}/QtCore +    ${QT_LIBRARY_DIR}/QtCore.framework/Headers +    ) + +  # Set QT_QTGUI_INCLUDE_DIR +  FIND_PATH( QT_QTGUI_INCLUDE_DIR QtGui +    ${QT_INCLUDE_DIR}/QtGui +    ${QT_LIBRARY_DIR}/QtGui.framework/Headers +    ) + +  # Set QT_QTMOTIF_INCLUDE_DIR +  FIND_PATH( QT_QTMOTIF_INCLUDE_DIR QtMotif ${QT_INCLUDE_DIR}/QtMotif) + +  # Set QT_QTNETWORK_INCLUDE_DIR +  FIND_PATH( QT_QTNETWORK_INCLUDE_DIR QtNetwork +    ${QT_INCLUDE_DIR}/QtNetwork +    ${QT_LIBRARY_DIR}/QtNetwork.framework/Headers +    ) + +  # Set QT_QTNSPLUGIN_INCLUDE_DIR +  FIND_PATH( QT_QTNSPLUGIN_INCLUDE_DIR QtNsPlugin +    ${QT_INCLUDE_DIR}/QtNsPlugin +    ${QT_LIBRARY_DIR}/QtNsPlugin.framework/Headers +    ) + +  # Set QT_QTOPENGL_INCLUDE_DIR +  FIND_PATH( QT_QTOPENGL_INCLUDE_DIR QtOpenGL +    ${QT_INCLUDE_DIR}/QtOpenGL +    ${QT_LIBRARY_DIR}/QtOpenGL.framework/Headers +    ) + +  # Set QT_QTSQL_INCLUDE_DIR +  FIND_PATH( QT_QTSQL_INCLUDE_DIR QtSql +    ${QT_INCLUDE_DIR}/QtSql +    ${QT_LIBRARY_DIR}/QtSql.framework/Headers +    ) + +  # Set QT_QTXML_INCLUDE_DIR +  FIND_PATH( QT_QTXML_INCLUDE_DIR QtXml +    ${QT_INCLUDE_DIR}/QtXml +    ${QT_LIBRARY_DIR}/QtXml.framework/Headers +    ) + +  # Set QT_QTASSISTANT_INCLUDE_DIR +  FIND_PATH( QT_QTASSISTANT_INCLUDE_DIR QtAssistant +    ${QT_INCLUDE_DIR}/QtAssistant +    ${QT_HEADERS_DIR}/QtAssistant +    ) + +  # Set QT_QTDESIGNER_INCLUDE_DIR +  FIND_PATH( QT_QTDESIGNER_INCLUDE_DIR QDesignerComponents +    ${QT_INCLUDE_DIR}/QtDesigner +    ${QT_HEADERS_DIR}/QtDesigner +    ) + +  # 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 +    ) + +  # 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) + + +  ######################################## +  # +  #       Setting the LIBRARY-Variables +  # +  ######################################## + +  IF (QT_USE_FRAMEWORKS) +    # If FIND_LIBRARY found libraries in Apple frameworks, we would not have +    # to jump through these hoops. +    SET(QT_QTCORE_LIBRARY "-F${QT_LIBRARY_DIR} -framework QtCore" +      CACHE STRING "The QtCore library.") +    SET(QT_QTCORE_LIBRARY_DEBUG "-F${QT_LIBRARY_DIR} -framework QtCore" +      CACHE STRING "The QtCore library.") +    SET(QT_QT3SUPPORT_LIBRARY "-framework Qt3Support" +      CACHE STRING "The Qt3Support library.") +    SET(QT_QT3SUPPORT_LIBRARY_DEBUG "-framework Qt3Support" +      CACHE STRING "The Qt3Support library.") +    SET(QT_QTGUI_LIBRARY "-framework QtGui" +      CACHE STRING "The QtGui library.") +    SET(QT_QTGUI_LIBRARY_DEBUG "-framework QtGui" +      CACHE STRING "The QtGui library.") +    SET(QT_QTNETWORK_LIBRARY "-framework QtNetwork" +      CACHE STRING "The QtNetwork library.") +    SET(QT_QTNETWORK_LIBRARY_DEBUG "-framework QtNetwork" +      CACHE STRING "The QtNetwork library.") +    SET(QT_QTOPENGL_LIBRARY "-framework QtOpenGL" +      CACHE STRING "The QtOpenGL library.") +    SET(QT_QTOPENGL_LIBRARY_DEBUG "-framework QtOpenGL" +      CACHE STRING "The QtOpenGL library.") +    SET(QT_QTSQL_LIBRARY "-framework QtSql" +      CACHE STRING "The QtSql library.") +    SET(QT_QTSQL_LIBRARY_DEBUG "-framework QtSql" +      CACHE STRING "The QtSql library.") +    SET(QT_QTXML_LIBRARY "-framework QtXml" +      CACHE STRING "The QtXml library.") +    SET(QT_QTXML_LIBRARY_DEBUG "-framework QtXml" +      CACHE STRING "The QtXml library.") +  ELSE (QT_USE_FRAMEWORKS) + +    # Set QT_QTCORE_LIBRARY by searching for a lib with "QtCore."  as part of +    # the filename +    FIND_LIBRARY(  QT_QTCORE_LIBRARY +      NAMES QtCore QtCore4 +      PATHS +      ${QT_LIBRARY_DIR} +      $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 QtCored4 +      PATHS +      ${QT_LIBRARY_DIR} +      $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_QT3SUPPORT_LIBRARY +    FIND_LIBRARY(QT_QT3SUPPORT_LIBRARY  NAMES Qt3Support Qt3Support4 PATHS ${QT_LIBRARY_DIR}) +    FIND_LIBRARY(QT_QT3SUPPORT_LIBRARY_DEBUG NAMES Qt3Support_debug Qt3Supportd4 PATHS ${QT_LIBRARY_DIR}) + +    # Set QT_QTGUI_LIBRARY +    FIND_LIBRARY(QT_QTGUI_LIBRARY NAMES QtGui QtGui4 PATHS ${QT_LIBRARY_DIR}) +    FIND_LIBRARY(QT_QTGUI_LIBRARY_DEBUG NAMES QtGui_debug QtGuid4 PATHS ${QT_LIBRARY_DIR}) + +    # Set QT_QTMOTIF_LIBRARY +    FIND_LIBRARY(QT_QTMOTIF_LIBRARY NAMES QtMotif PATHS ${QT_LIBRARY_DIR}) +    FIND_LIBRARY(QT_QTMOTIF_LIBRARY_DEBUG NAMES QtMotif_debug PATHS ${QT_LIBRARY_DIR}) + +    # Set QT_QTNETWORK_LIBRARY +    FIND_LIBRARY(QT_QTNETWORK_LIBRARY NAMES QtNetwork QtNetwork4 PATHS ${QT_LIBRARY_DIR}) +    FIND_LIBRARY(QT_QTNETWORK_LIBRARY_DEBUG NAMES QtNetwork_debug QtNetworkd4 PATHS ${QT_LIBRARY_DIR}) + +    # Set QT_QTNSPLUGIN_LIBRARY +    FIND_LIBRARY(QT_QTNSPLUGIN_LIBRARY NAMES QtNsPlugin PATHS ${QT_LIBRARY_DIR}) +    FIND_LIBRARY(QT_QTNSPLUGIN_LIBRARY_DEBUG NAMES QtNsPlugin_debug PATHS ${QT_LIBRARY_DIR}) + +    # Set QT_QTOPENGL_LIBRARY +    FIND_LIBRARY(QT_QTOPENGL_LIBRARY NAMES QtOpenGL QtOpenGL4 PATHS ${QT_LIBRARY_DIR}) +    FIND_LIBRARY(QT_QTOPENGL_LIBRARY_DEBUG NAMES QtOpenGL_debug QtOpenGLd4 PATHS ${QT_LIBRARY_DIR}) + +    # Set QT_QTSQL_LIBRARY +    FIND_LIBRARY(QT_QTSQL_LIBRARY NAMES QtSql QtSql4 PATHS ${QT_LIBRARY_DIR}) +    FIND_LIBRARY(QT_QTSQL_LIBRARY_DEBUG NAMES QtSql_debug QtSqld4 PATHS ${QT_LIBRARY_DIR}) + +    # Set QT_QTXML_LIBRARY +    FIND_LIBRARY(QT_QTXML_LIBRARY NAMES QtXml QtXml4 PATHS ${QT_LIBRARY_DIR}) +    FIND_LIBRARY(QT_QTXML_LIBRARY_DEBUG NAMES QtXml_debug QtXmld4 PATHS ${QT_LIBRARY_DIR}) + +  ENDIF (QT_USE_FRAMEWORKS) + +  # Set QT_QTASSISTANT_LIBRARY +  FIND_LIBRARY(QT_QTASSISTANT_LIBRARY  NAMES QtAssistant QtAssistant4 PATHS ${QT_LIBRARY_DIR}) +  FIND_LIBRARY(QT_QTASSISTANT_LIBRARY_DEBUG NAMES QtAssistant_debug QtAssistantd4 PATHS ${QT_LIBRARY_DIR}) + +  # Set QT_QTDESIGNER_LIBRARY +  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) + +  ####################################### +  # +  #       Check the executables of Qt +  #          ( moc, uic, rcc ) +  # +  ####################################### +  IF (NOT QT_BINARY_DIR) +    EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} +      ARGS "-query QT_INSTALL_BINS" +      OUTPUT_VARIABLE qt_bins ) +    SET(QT_BINARY_DIR ${qt_bins} CACHE INTERNAL "") +  ENDIF (NOT QT_BINARY_DIR) +  FIND_PROGRAM(QT_MOC_EXECUTABLE +    NAMES moc +    PATHS +    ${QT_BINARY_DIR} +    $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") +  ENDIF(QT_MOC_EXECUTABLE) + +  FIND_PROGRAM(QT_UIC3_EXECUTABLE +    NAMES uic3 +    PATHS +    ${QT_BINARY_DIR} +    $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 +    ) + +  FIND_PROGRAM(QT_UIC_EXECUTABLE +    NAMES uic +    PATHS +    ${QT_BINARY_DIR} +    $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") +  ENDIF(QT_UIC_EXECUTABLE) + +  FIND_PROGRAM(QT_RCC_EXECUTABLE +    NAMES rcc +    PATHS +    ${QT_BINARY_DIR} +    $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 +    ) + +  MARK_AS_ADVANCED( +    QT_UIC_EXECUTABLE +    QT_UIC3_EXECUTABLE +    QT_MOC_EXECUTABLE +    QT_RCC_EXECUTABLE ) + +  ###################################### +  # +  #       Macros for building Qt files +  # +  ###################################### + + +  # QT4_WRAP_CPP(outfiles inputfile ... ) +  # TODO  perhaps add support for -D, -U and other minor options + +  MACRO(QT4_WRAP_CPP outfiles ) + +    # get include dirs +    GET_DIRECTORY_PROPERTY(moc_includes_tmp INCLUDE_DIRECTORIES) +    SET(moc_includes) +    FOREACH(it ${moc_includes_tmp}) +      SET(moc_includes ${moc_includes} "-I${it}") +    ENDFOREACH(it) + +    FOREACH(it ${ARGN}) +      GET_FILENAME_COMPONENT(outfile ${it} NAME_WE) + +      SET(infile ${CMAKE_CURRENT_SOURCE_DIR}/${it}) +      SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/moc_${outfile}.cxx) +      ADD_CUSTOM_COMMAND(OUTPUT ${outfile} +        COMMAND ${QT_MOC_EXECUTABLE} +        ARGS ${moc_includes} -o ${outfile} ${infile} +        MAIN_DEPENDENCY ${infile}) +      SET(${outfiles} ${${outfiles}} ${outfile}) +    ENDFOREACH(it) + +  ENDMACRO(QT4_WRAP_CPP) + + +  # QT4_WRAP_UI(outfiles inputfile ... ) + +  MACRO(QT4_WRAP_UI outfiles ) + +    FOREACH(it ${ARGN}) +      GET_FILENAME_COMPONENT(outfile ${it} NAME_WE) +      SET(infile ${CMAKE_CURRENT_SOURCE_DIR}/${it}) +      SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h) +      ADD_CUSTOM_COMMAND(OUTPUT ${outfile} +        COMMAND ${QT_UIC_EXECUTABLE} +        ARGS -o ${outfile} ${infile} +        MAIN_DEPENDENCY ${infile}) +      SET(${outfiles} ${${outfiles}} ${outfile}) +    ENDFOREACH(it) + +  ENDMACRO(QT4_WRAP_UI) + +  # QT4_ADD_RESOURCE(outfiles inputfile ... ) +  # TODO  perhaps consider adding support for compression and root options to rcc + +  MACRO(QT4_ADD_RESOURCES outfiles ) + +    FOREACH(it ${ARGN}) +      GET_FILENAME_COMPONENT(outfilename ${it} NAME_WE) +      SET(infile ${CMAKE_CURRENT_SOURCE_DIR}/${it}) +      SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx) +      ADD_CUSTOM_COMMAND(OUTPUT ${outfile} +        COMMAND ${QT_RCC_EXECUTABLE} +        ARGS -name ${outfilename} -o ${outfile} ${infile} +        MAIN_DEPENDENCY ${infile} ) +      SET(${outfiles} ${${outfiles}} ${outfile}) +    ENDFOREACH(it) + +  ENDMACRO(QT4_ADD_RESOURCES) + + + +  ###################################### +  # +  #       decide if Qt got found +  # +  ###################################### +  # if the includes,libraries,moc,uic and rcc are found then we have it +  IF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE) +    SET( QT4_FOUND "YES" ) +    IF( NOT Qt4_FIND_QUIETLY) +      MESSAGE(STATUS "Found Qt-Version ${QT_INST_MAJOR_VERSION}.${QT_INST_MINOR_VERSION}.${QT_INST_PATCH_VERSION}") +    ENDIF( NOT Qt4_FIND_QUIETLY) +  ELSE( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE) +    SET( QT4_FOUND "NO") +    IF( Qt4_FIND_REQUIRED) +      MESSAGE( SEND_ERROR "Qt libraries, includes, moc, uic or/and rcc NOT found!") +    ENDIF( Qt4_FIND_REQUIRED) +  ENDIF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND  QT_RCC_EXECUTABLE) +  SET(QT_FOUND ${QT4_FOUND}) + + +  ####################################### +  # +  #       System dependent settings +  # +  ####################################### +  # for unix add X11 stuff +  IF(UNIX) +    FIND_PACKAGE(X11) +  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_QT_LIBRARY "") +  SET( QT_QTMAIN_LIBRARY "") +ELSE(QT4_QMAKE_FOUND) +  IF(QT_QMAKE_EXECUTABLE) +    MESSAGE("QT_QMAKE_EXECUTABLE set to qmake version: QTVERSION = ${QTVERSION}\nQT_QMAKE_EXECUTABLE = ${QT_QMAKE_EXECUTABLE}, please set to path to qmake from qt4.") +  ENDIF(QT_QMAKE_EXECUTABLE) +  IF( Qt4_FIND_REQUIRED) +     MESSAGE( SEND_ERROR "Qt qmake not found!") +  ENDIF( Qt4_FIND_REQUIRED) + +ENDIF(QT4_QMAKE_FOUND) diff --git a/modules/FindX11.cmake b/modules/FindX11.cmake new file mode 100644 index 00000000..25d6e1e4 --- /dev/null +++ b/modules/FindX11.cmake @@ -0,0 +1,151 @@ +# - Find X11 installation +# Try to find X11 on UNIX systems. The following values are defined +#  X11_FOUND        - True if X11 is available +#  X11_INCLUDE_DIR  - include directories to use X11 +#  X11_LIBRARIES    - link against these to use X11 + +IF (UNIX) +  SET(X11_FOUND 0) + +  SET(X11_INC_SEARCH_PATH +    /usr/X11R6/include  +    /usr/local/include  +    /usr/include/X11 +    /usr/openwin/include  +    /usr/openwin/share/include  +    /opt/graphics/OpenGL/include +    /usr/include +  ) + +  SET(X11_LIB_SEARCH_PATH +    /usr/X11R6/lib +    /usr/local/lib  +    /usr/openwin/lib  +    /usr/lib  +  ) + +  FIND_PATH(X11_X11_INCLUDE_PATH X11/X.h ${X11_INC_SEARCH_PATH}) +  FIND_PATH(X11_Xlib_INCLUDE_PATH X11/Xlib.h ${X11_INC_SEARCH_PATH}) +  FIND_PATH(X11_Xutil_INCLUDE_PATH X11/Xutil.h ${X11_INC_SEARCH_PATH}) +  FIND_LIBRARY(X11_X11_LIB X11 ${X11_LIB_SEARCH_PATH}) +  FIND_LIBRARY(X11_Xext_LIB Xext ${X11_LIB_SEARCH_PATH}) + +  IF(X11_X11_INCLUDE_PATH) +    SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_X11_INCLUDE_PATH}) +  ENDIF(X11_X11_INCLUDE_PATH) + +  IF(X11_Xlib_INCLUDE_PATH) +    SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xlib_INCLUDE_PATH}) +  ENDIF(X11_Xlib_INCLUDE_PATH) + +  IF(X11_Xutil_INCLUDE_PATH) +    SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xutil_INCLUDE_PATH}) +  ENDIF(X11_Xutil_INCLUDE_PATH) + +  IF(X11_X11_LIB) +    SET(X11_LIBRARIES ${X11_LIBRARIES} ${X11_X11_LIB}) +  ENDIF(X11_X11_LIB) + +  IF(X11_Xext_LIB) +    SET(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xext_LIB}) +  ENDIF(X11_Xext_LIB) + +  # Deprecated variable for backwards compatibility with CMake 1.4 +  IF(X11_X11_INCLUDE_PATH) +    IF(X11_LIBRARIES) +      SET(X11_FOUND 1) +    ENDIF(X11_LIBRARIES) +  ENDIF(X11_X11_INCLUDE_PATH) + +  SET(X11_LIBRARY_DIR "") +  IF(X11_X11_LIB) +    GET_FILENAME_COMPONENT(X11_LIBRARY_DIR ${X11_X11_LIB} PATH) +  ENDIF(X11_X11_LIB) + +  IF(X11_FOUND) +    INCLUDE(CheckFunctionExists) +    INCLUDE(CheckLibraryExists) + +    # Translated from an autoconf-generated configure script. +    # See libs.m4 in autoconf's m4 directory. +    IF($ENV{ISC} MATCHES "^yes$") +      SET(X11_X_EXTRA_LIBS -lnsl_s -linet) +    ELSE($ENV{ISC} MATCHES "^yes$") +      SET(X11_X_EXTRA_LIBS "") + +      # See if XOpenDisplay in X11 works by itself. +      CHECK_LIBRARY_EXISTS("${X11_LIBRARIES}" "XOpenDisplay" "${X11_LIBRARY_DIR}" X11_LIB_X11_SOLO) +      IF(NOT X11_LIB_X11_SOLO) +        # Find library needed for dnet_ntoa. +        CHECK_LIBRARY_EXISTS("dnet" "dnet_ntoa" "" X11_LIB_DNET_HAS_DNET_NTOA)  +        IF (X11_LIB_DNET_HAS_DNET_NTOA) +          SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -ldnet) +        ELSE (X11_LIB_DNET_HAS_DNET_NTOA) +          CHECK_LIBRARY_EXISTS("dnet_stub" "dnet_ntoa" "" X11_LIB_DNET_STUB_HAS_DNET_NTOA)  +          IF (X11_LIB_DNET_STUB_HAS_DNET_NTOA) +            SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -ldnet_stub) +          ENDIF (X11_LIB_DNET_STUB_HAS_DNET_NTOA) +        ENDIF (X11_LIB_DNET_HAS_DNET_NTOA) +      ENDIF(NOT X11_LIB_X11_SOLO) + +      # Find library needed for gethostbyname. +      CHECK_FUNCTION_EXISTS("gethostbyname" CMAKE_HAVE_GETHOSTBYNAME) +      IF(NOT CMAKE_HAVE_GETHOSTBYNAME) +        CHECK_LIBRARY_EXISTS("nsl" "gethostbyname" "" CMAKE_LIB_NSL_HAS_GETHOSTBYNAME)  +        IF (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME) +          SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lnsl) +        ELSE (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME) +          CHECK_LIBRARY_EXISTS("bsd" "gethostbyname" "" CMAKE_LIB_BSD_HAS_GETHOSTBYNAME)  +          IF (CMAKE_LIB_BSD_HAS_GETHOSTBYNAME) +            SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lbsd) +          ENDIF (CMAKE_LIB_BSD_HAS_GETHOSTBYNAME) +        ENDIF (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME) +      ENDIF(NOT CMAKE_HAVE_GETHOSTBYNAME) + +      # Find library needed for connect. +      CHECK_FUNCTION_EXISTS("connect" CMAKE_HAVE_CONNECT) +      IF(NOT CMAKE_HAVE_CONNECT) +        CHECK_LIBRARY_EXISTS("socket" "connect" "" CMAKE_LIB_SOCKET_HAS_CONNECT)  +        IF (CMAKE_LIB_SOCKET_HAS_CONNECT) +          SET (X11_X_EXTRA_LIBS -lsocket ${X11_X_EXTRA_LIBS}) +        ENDIF (CMAKE_LIB_SOCKET_HAS_CONNECT) +      ENDIF(NOT CMAKE_HAVE_CONNECT) + +      # Find library needed for remove. +      CHECK_FUNCTION_EXISTS("remove" CMAKE_HAVE_REMOVE) +      IF(NOT CMAKE_HAVE_REMOVE) +        CHECK_LIBRARY_EXISTS("posix" "remove" "" CMAKE_LIB_POSIX_HAS_REMOVE)  +        IF (CMAKE_LIB_POSIX_HAS_REMOVE) +          SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lposix) +        ENDIF (CMAKE_LIB_POSIX_HAS_REMOVE) +      ENDIF(NOT CMAKE_HAVE_REMOVE) + +      # Find library needed for shmat. +      CHECK_FUNCTION_EXISTS("shmat" CMAKE_HAVE_SHMAT) +      IF(NOT CMAKE_HAVE_SHMAT) +        CHECK_LIBRARY_EXISTS("ipc" "shmat" "" CMAKE_LIB_IPS_HAS_SHMAT)  +        IF (CMAKE_LIB_IPS_HAS_SHMAT) +          SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lipc) +        ENDIF (CMAKE_LIB_IPS_HAS_SHMAT) +      ENDIF(NOT CMAKE_HAVE_SHMAT) +    ENDIF($ENV{ISC} MATCHES "^yes$") + +    CHECK_LIBRARY_EXISTS("ICE" "IceConnectionNumber" "${X11_LIBRARY_DIR}" +                         CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) +    IF(CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) +      SET (X11_X_PRE_LIBS -lSM -lICE) +    ENDIF(CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) +    # Build the final list of libraries. +    SET (X11_LIBRARIES ${X11_X_PRE_LIBS} ${X11_LIBRARIES} ${X11_X_EXTRA_LIBS}) +  ENDIF(X11_FOUND) + +  MARK_AS_ADVANCED( +    X11_X11_INCLUDE_PATH +    X11_X11_LIB +    X11_Xext_LIB +    X11_Xlib_INCLUDE_PATH +    X11_Xutil_INCLUDE_PATH +    X11_LIBRARIES +    ) + +ENDIF (UNIX)  | 
