diff options
| author | Alexander Neundorf <neundorf@kde.org> | 2007-09-19 13:25:17 +0000 | 
|---|---|---|
| committer | Alexander Neundorf <neundorf@kde.org> | 2007-09-19 13:25:17 +0000 | 
| commit | f5d237a37d9b3f9e5a60e862c1ad707ed85d0f9b (patch) | |
| tree | 1b283306e258bcd268ebbfe0021e2e61e4e7558b /modules | |
| parent | 1eddbcbe310fbd69e387d79bf1faf2aef3626ef3 (diff) | |
| download | extra-cmake-modules-f5d237a37d9b3f9e5a60e862c1ad707ed85d0f9b.tar.gz extra-cmake-modules-f5d237a37d9b3f9e5a60e862c1ad707ed85d0f9b.tar.bz2 | |
partly sync with cmake cvs: handle relative/absolute paths in Qt rc files better, handle qmake errors better
Alex
svn path=/trunk/KDE/kdelibs/; revision=714403
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/FindQt4.cmake | 26 | 
1 files changed, 20 insertions, 6 deletions
| diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index 5314b99a..36d63383 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -207,16 +207,25 @@ 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") -  STRING(REGEX REPLACE ".*CMAKE_MESSAGE<([^>]*).*" "\\1" ${outvar} "${_qmake_query_output}") +  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)  # check for qmake @@ -830,6 +839,7 @@ IF (QT4_QMAKE_FOUND)    IF(WIN32)      _QT4_ADJUST_LIB_VARS(QTMAIN)    ENDIF(WIN32) +      #######################################    # @@ -983,14 +993,18 @@ IF (QT4_QMAKE_FOUND)        GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE)        GET_FILENAME_COMPONENT(rc_path ${infile} PATH)        SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx) -      #  parse file for dependencies +      #  parse file for dependencies  +      #  all files are absolute paths or relative to the location of the qrc file        FILE(READ "${infile}" _RC_FILE_CONTENTS)        STRING(REGEX MATCHALL "<file[^<]+" _RC_FILES "${_RC_FILE_CONTENTS}") -              SET(_RC_DEPENDS)        FOREACH(_RC_FILE ${_RC_FILES})          STRING(REGEX REPLACE "^<file[^>]*>" "" _RC_FILE "${_RC_FILE}") -        SET(_RC_DEPENDS ${_RC_DEPENDS} "${rc_path}/${_RC_FILE}") +        STRING(REGEX MATCH "^/|([A-Za-z]:/)" _ABS_PATH_INDICATOR "${_RC_FILE}") +        IF(NOT _ABS_PATH_INDICATOR) +          SET(_RC_FILE "${rc_path}/${_RC_FILE}") +        ENDIF(NOT _ABS_PATH_INDICATOR) +        SET(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}")        ENDFOREACH(_RC_FILE)        ADD_CUSTOM_COMMAND(OUTPUT ${outfile}          COMMAND ${QT_RCC_EXECUTABLE} @@ -1018,7 +1032,7 @@ IF (QT4_QMAKE_FOUND)       ADD_CUSTOM_COMMAND(OUTPUT ${_impl} ${_header}          COMMAND ${QT_DBUSXML2CPP_EXECUTABLE} ${_params} ${_basename} ${_infile}          DEPENDS ${_infile}) - +        SET_SOURCE_FILES_PROPERTIES(${_impl} PROPERTIES SKIP_AUTOMOC TRUE)      QT4_GENERATE_MOC(${_header} ${_moc}) | 
