CMake plugin crashes with cmake 2.6.3 rc4 FindQt4.cmake

Andreas Pakulat apaku at gmx.de
Sun Nov 16 17:48:41 UTC 2008


Hi,

finally I found out why cmake support crashes here and on my work-machine.
It apparently cannot handle the following condition:

  # 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)
  ENDIF ((QT_LIBRARY_DIR AND NOT QT_BINARY_DIR) OR QT_QMAKE_CHANGED)

The probelm is that for some reason the IfAst's condition is an empty list,
which means CMakeCondition::condition and the called functions break
(because it assumes that constBegin != constEnd, in particular that there's
at least 1 entry in the list). 

I've fixed the crash, with a expression.isEmpty() in
CMakeCondition::condition(), but someone more familiar with the parser
should look into why it creates an empty expression-list in the first
place.

Andreas

-- 
You are a fluke of the universe; you have no right to be here.




More information about the KDevelop-devel mailing list