Well, looks like they added () into the conditions, so that will have to be added in the cmakeconditon class, I'll try to run into that during this week.<br><br><div class="gmail_quote">On Sun, Nov 16, 2008 at 6:48 PM, Andreas Pakulat <span dir="ltr"><<a href="mailto:apaku@gmx.de">apaku@gmx.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br>
<br>
finally I found out why cmake support crashes here and on my work-machine.<br>
It apparently cannot handle the following condition:<br>
<br>
  # ask qmake for the binary dir<br>
  IF ((QT_LIBRARY_DIR AND NOT QT_BINARY_DIR) OR QT_QMAKE_CHANGED)<br>
     EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE}<br>
       ARGS "-query QT_INSTALL_BINS"<br>
       OUTPUT_VARIABLE qt_bins )<br>
     # make sure we have / and not \ as qmake gives on windows<br>
     FILE(TO_CMAKE_PATH "${qt_bins}" qt_bins)<br>
     SET(QT_BINARY_DIR ${qt_bins} CACHE INTERNAL "" FORCE)<br>
  ENDIF ((QT_LIBRARY_DIR AND NOT QT_BINARY_DIR) OR QT_QMAKE_CHANGED)<br>
<br>
The probelm is that for some reason the IfAst's condition is an empty list,<br>
which means CMakeCondition::condition and the called functions break<br>
(because it assumes that constBegin != constEnd, in particular that there's<br>
at least 1 entry in the list).<br>
<br>
I've fixed the crash, with a expression.isEmpty() in<br>
CMakeCondition::condition(), but someone more familiar with the parser<br>
should look into why it creates an empty expression-list in the first<br>
place.<br>
<br>
Andreas<br>
<font color="#888888"><br>
--<br>
You are a fluke of the universe; you have no right to be here.<br>
<br>
_______________________________________________<br>
KDevelop-devel mailing list<br>
<a href="mailto:KDevelop-devel@kdevelop.org">KDevelop-devel@kdevelop.org</a><br>
<a href="https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel" target="_blank">https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel</a><br>
</font></blockquote></div><br>