diff options
| author | Marco Martin <notmart@gmail.com> | 2010-10-10 16:37:06 +0000 | 
|---|---|---|
| committer | Marco Martin <notmart@gmail.com> | 2010-10-10 16:37:06 +0000 | 
| commit | 130004ca17fa790edf4b1daa7cc86968f7675488 (patch) | |
| tree | 10aa25d2a964c85b7e5200103e811fec46eb606a /modules | |
| parent | e11ae2b0ff86a271bdc74e395bce83c0bee58d24 (diff) | |
| download | extra-cmake-modules-130004ca17fa790edf4b1daa7cc86968f7675488.tar.gz extra-cmake-modules-130004ca17fa790edf4b1daa7cc86968f7675488.tar.bz2 | |
add QT_IMPORTS_DIR (directory where imports are installed, at the
moment they are all QML plugins) to FindQt4.cmake
this change was done to upstream CMake before. this is a backport of the
commit
2dae2f1a0b24c674b651fd6edf79c4b51177b4d6
in git.cmake.org maintaining the difrence with the upstream patch
minimal
CCMAIL:neundorf@kde.org
svn path=/trunk/KDE/kdelibs/; revision=1184513
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/FindQt4.cmake | 73 | 
1 files changed, 36 insertions, 37 deletions
| diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index a4908ebb..bbc96040 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -255,6 +255,7 @@  #  QT_LIBRARY_DIR              Path to "lib" of Qt4  #  QT_PLUGINS_DIR              Path to "plugins" for Qt4  #  QT_TRANSLATIONS_DIR         Path to "translations" of Qt4 +#  QT_IMPORTS_DIR              Path to "imports" of Qt4  #  QT_DOC_DIR                  Path to "doc" of Qt4  #  QT_MKSPECS_DIR              Path to "mkspecs" of Qt4  # @@ -377,6 +378,14 @@ IF(QT_QT_LIBRARY)    ENDIF(Qt4_FIND_REQUIRED)  ENDIF(QT_QT_LIBRARY) +function(_QT4_QUERY_QMAKE VAR RESULT) +  exec_program(${QT_QMAKE_EXECUTABLE} ARGS "-query ${VAR}" RETURN_VALUE return_code OUTPUT_VARIABLE output ) +  if(NOT return_code) +    file(TO_CMAKE_PATH "${output}" output) +    set(${RESULT} ${output} PARENT_SCOPE) +  endif(NOT return_code) +endfunction(_QT4_QUERY_QMAKE) +  IF (QT4_QMAKE_FOUND  AND  Qt4::QtCore)     # Check already done in this cmake run, nothing more to do @@ -455,7 +464,7 @@ IF (QT_QMAKE_EXECUTABLE)    SET(QT4_QMAKE_FOUND FALSE) -  EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION) +  _qt4_query_qmake(QT_VERSION QTVERSION)    # check for qt3 qmake and then try and find qmake4 or qmake-qt4 in the path    IF("${QTVERSION}" MATCHES "Unknown") @@ -467,8 +476,7 @@ IF (QT_QMAKE_EXECUTABLE)        DOC "The qmake executable for the Qt installation to use"        )      IF(QT_QMAKE_EXECUTABLE) -      EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE}  -        ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION) +      _qt4_query_qmake(QT_VERSION QTVERSION)      ENDIF(QT_QMAKE_EXECUTABLE)    ENDIF("${QTVERSION}" MATCHES "Unknown") @@ -550,11 +558,7 @@ IF (QT4_QMAKE_FOUND)    # ask qmake for the library dir    # Set QT_LIBRARY_DIR    IF (NOT QT_LIBRARY_DIR OR QT_QMAKE_CHANGED) -    EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} -      ARGS "-query QT_INSTALL_LIBS" -      OUTPUT_VARIABLE QT_LIBRARY_DIR_TMP ) -    # make sure we have / and not \ as qmake gives on windows -    FILE(TO_CMAKE_PATH "${QT_LIBRARY_DIR_TMP}" QT_LIBRARY_DIR_TMP) +    _qt4_query_qmake(QT_INSTALL_LIBS QT_LIBRARY_DIR_TMP)      IF(EXISTS "${QT_LIBRARY_DIR_TMP}")        SET(QT_LIBRARY_DIR ${QT_LIBRARY_DIR_TMP} CACHE PATH "Qt library dir" FORCE)      ELSE(EXISTS "${QT_LIBRARY_DIR_TMP}") @@ -577,40 +581,26 @@ IF (QT4_QMAKE_FOUND)    # ask qmake for the binary dir    IF (QT_LIBRARY_DIR AND NOT QT_BINARY_DIR  OR  QT_QMAKE_CHANGED) -     EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} -       ARGS "-query QT_INSTALL_BINS" -       OUTPUT_VARIABLE qt_bins ) -     # make sure we have / and not \ as qmake gives on windows -     FILE(TO_CMAKE_PATH "${qt_bins}" qt_bins) -     SET(QT_BINARY_DIR ${qt_bins} CACHE INTERNAL "" FORCE) +      _qt4_query_qmake(QT_INSTALL_BINS qt_bins) +      SET(QT_BINARY_DIR ${qt_bins} CACHE INTERNAL "" FORCE)    ENDIF (QT_LIBRARY_DIR AND NOT QT_BINARY_DIR  OR  QT_QMAKE_CHANGED)    # ask qmake for the include dir    IF (QT_LIBRARY_DIR AND NOT QT_HEADERS_DIR  OR  QT_QMAKE_CHANGED) -      EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} -        ARGS "-query QT_INSTALL_HEADERS"  -        OUTPUT_VARIABLE qt_headers )  -      # make sure we have / and not \ as qmake gives on windows -      FILE(TO_CMAKE_PATH "${qt_headers}" qt_headers) +      _qt4_query_qmake(QT_INSTALL_HEADERS qt_headers)        SET(QT_HEADERS_DIR ${qt_headers} CACHE INTERNAL "" FORCE)    ENDIF (QT_LIBRARY_DIR AND NOT QT_HEADERS_DIR  OR  QT_QMAKE_CHANGED)    # ask qmake for the documentation directory    IF (QT_LIBRARY_DIR AND NOT QT_DOC_DIR  OR  QT_QMAKE_CHANGED) -    EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} -      ARGS "-query QT_INSTALL_DOCS" -      OUTPUT_VARIABLE qt_doc_dir ) -    # make sure we have / and not \ as qmake gives on windows -    FILE(TO_CMAKE_PATH "${qt_doc_dir}" qt_doc_dir) +    _qt4_query_qmake(QT_INSTALL_DOCS qt_doc_dir)      SET(QT_DOC_DIR ${qt_doc_dir} CACHE PATH "The location of the Qt docs" FORCE)    ENDIF (QT_LIBRARY_DIR AND NOT QT_DOC_DIR  OR  QT_QMAKE_CHANGED)    # ask qmake for the mkspecs directory    IF (QT_LIBRARY_DIR AND NOT QT_MKSPECS_DIR  OR  QT_QMAKE_CHANGED) -    EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} -      ARGS "-query QMAKE_MKSPECS" -      OUTPUT_VARIABLE qt_mkspecs_dirs ) +    _qt4_query_qmake(QMAKE_MKSPECS qt_mkspecs_dirs)      # do not replace : on windows as it might be a drive letter      # and windows should already use ; as a separator      IF(UNIX) @@ -624,24 +614,33 @@ IF (QT4_QMAKE_FOUND)    # ask qmake for the plugins directory    IF (QT_LIBRARY_DIR AND NOT QT_PLUGINS_DIR  OR  QT_QMAKE_CHANGED) -    EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} -      ARGS "-query QT_INSTALL_PLUGINS" -      OUTPUT_VARIABLE qt_plugins_dir ) -    # make sure we have / and not \ as qmake gives on windows -    FILE(TO_CMAKE_PATH "${qt_plugins_dir}" qt_plugins_dir) +    _qt4_query_qmake(QT_INSTALL_PLUGINS qt_plugins_dir)      SET(QT_PLUGINS_DIR ${qt_plugins_dir} CACHE PATH "The location of the Qt plugins" FORCE)    ENDIF (QT_LIBRARY_DIR AND NOT QT_PLUGINS_DIR  OR  QT_QMAKE_CHANGED)    # ask qmake for the translations directory    IF (QT_LIBRARY_DIR AND NOT QT_TRANSLATIONS_DIR  OR  QT_QMAKE_CHANGED) -    EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} -      ARGS "-query QT_INSTALL_TRANSLATIONS" -      OUTPUT_VARIABLE qt_translations_dir ) -    # make sure we have / and not \ as qmake gives on windows -    FILE(TO_CMAKE_PATH "${qt_translations_dir}" qt_translations_dir) +    _qt4_query_qmake(QT_INSTALL_TRANSLATIONS qt_translations_dir)      SET(QT_TRANSLATIONS_DIR ${qt_translations_dir} CACHE PATH "The location of the Qt translations" FORCE)    ENDIF (QT_LIBRARY_DIR AND NOT QT_TRANSLATIONS_DIR  OR  QT_QMAKE_CHANGED) +  # ask qmake for the imports directory +  IF (QT_LIBRARY_DIR AND NOT QT_IMPORTS_DIR OR QT_QMAKE_CHANGED) +    _qt4_query_qmake(QT_INSTALL_IMPORTS qt_imports_dir) +    if(qt_imports_dir) +      SET(QT_IMPORTS_DIR NOTFOUND) +      foreach(qt_cross_path ${CMAKE_FIND_ROOT_PATH}) +        set(qt_cross_paths ${qt_cross_paths} "${qt_cross_path}/imports") +      endforeach(qt_cross_path) +      FIND_PATH(QT_IMPORTS_DIR NAMES Qt +        HINTS ${qt_cross_paths} ${qt_imports_dir} +        DOC "The location of the Qt imports" +        NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH +        NO_CMAKE_SYSTEM_PATH) +      mark_as_advanced(QT_IMPORTS_DIR) +    endif(qt_imports_dir) +  ENDIF (QT_LIBRARY_DIR AND NOT QT_IMPORTS_DIR  OR  QT_QMAKE_CHANGED) +    # Make variables changeble to the advanced user    MARK_AS_ADVANCED( QT_LIBRARY_DIR QT_DOC_DIR QT_MKSPECS_DIR                      QT_PLUGINS_DIR QT_TRANSLATIONS_DIR) | 
