If there's still interest, in order to get Smoke to work right with the frameworks, I put the following into the file "generatorpreprocessor.cpp".  It's an ugly kludge, but it might save you some irritation.<div>
<br></div><div><div>    // skip limits.h - rpp::pp gets stuck in a endless loop, probably because of</div><div>    // #include_next <limits.h> in the file and no proper header guard.</div><div>    if ((fileName == "limits.h" || fileName == "stdarg.h") && type == rpp::Preprocessor::IncludeGlobal)</div>
<div>        return 0;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>QRegExp rx("(Qt\\w+)/([\\w\\.]+)");</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if(rx.indexIn(fileName) != -1) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>  fileName = "/Library/Frameworks/" + rx.cap(1)</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>+ ".framework/Headers/" + rx.cap(2);</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>}</div><div><br></div><div>-Adam</div><br><div class="gmail_quote">On Fri, Feb 18, 2011 at 5:59 PM, Arno Rehn <span dir="ltr"><<a href="mailto:arno@arnorehn.de">arno@arnorehn.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Friday 18 February 2011 17:33:33 Ben Skelton wrote:<br>
> My QAccessibleBridgePlugin problem seems taken care of with a change to<br>
qtcore/tests/test.cpp:<br>
> > #ifdef TEST_QT_NO_ACCESSIBILITY<br>
> > #include "QtGui/qaccessible.h"<br>
> > #include "QtGui/qaccessiblebridge.h"<br>
> ><br>
> > int main(int argc, char ** argv)<br>
> > {<br>
> ><br>
> >   QAccessibleEvent event(QEvent::AccessibilityHelp, 0);<br>
> >   QAccessibleBridgePlugin plugin(0);<br>
> ><br>
> > }<br>
> ><br>
> > #endif<br>
</div>Hm, this will get rid of all accessibility stuff in OS X builds. But I guess<br>
it's an okay solution for now.<br>
<div><div></div><div class="h5"><br>
> > Kauri:~ benskelton$ otool -tV<br>
> > /Users/benskelton/Desktop/build/lib/libQtGui.dylib | c++filt | grep<br>
> > macMenu<br>
> ><br>
> > 000000000001568a    callq   QMenu::macMenu(NSMenu*)<br>
> > 0000000000017977    callq   0x006e849c      ; symbol stub for:<br>
> > QCoreApplicationPrivate::macMenuBarName()<br>
> > QMenuPrivate::macMenu(NSMenu*):<br>
> > QMenu::macMenu(NSMenu*):<br>
> > 0000000000066359    jmp     QMenuPrivate::macMenu(NSMenu*)<br>
> > 0000000000066c38    callq   QMenu::macMenu(NSMenu*)<br>
> > 0000000000067796    callq   QMenu::macMenu(NSMenu*)<br>
> > 0000000000067961    callq   QMenu::macMenu(NSMenu*)<br>
> > QMenuBarPrivate::macMenu():<br>
> > QMenuBar::macMenu():<br>
> > 0000000000068159    jmp     QMenuBarPrivate::macMenu()<br>
> > 000000000006842f    callq   QMenuBar::macMenu()<br>
> > 00000000000686d2    callq   QMenuBar::macMenu()<br>
> > 0000000000068a8b    callq   QMenuPrivate::macMenu(NSMenu*)<br>
><br>
> Looking at the comments in the Qt source for macMenu:<br>
> >     If Qt is built against Carbon, the OSMenuRef is a MenuRef that can be<br>
> >     used with Carbon's Menu Manager API.<br>
> ><br>
> >     If Qt is built against Cocoa, the OSMenuRef is a NSMenu pointer.<br>
><br>
> otool shows an NSMenu* argument because my Qt is built for Cocoa. It<br>
> appears that Qt sets QT_MAC_USE_COCOA for Cocoa builds and does not set<br>
> this for Carbon builds. Qt documentation says that Cocoa builds are<br>
> default for Qt/Mac.<br>
</div></div>That #define is somewhere defined in qfeatures.h and is picked up correctly by<br>
smokegen (otherwise it wouldn't make it a void*). However, __OBJC__ has to be<br>
defined as well for the NSMenu* typedef. I don't really know where the<br>
__OBJC__ define is coming from (we're compiling C++ after all), so I'll simply<br>
blacklist QMenu::macMenu() as well.<br>
<div class="im"><br>
> > Kauri:~ benskelton$ otool -tV<br>
> > /Users/benskelton/Desktop/build/lib/libQtGui.dylib | c++filt | grep<br>
> > qt_mac_set_cursor<br>
><br>
> > qt_mac_set_cursor(QCursor const*, QPoint const&):<br>
> which seems ok, right? Not sure if this is relevant in some way, but in the<br>
Qt source this function does nothing for the default case on the mac:<br>
> > void qt_mac_set_cursor(const QCursor *c, const QPoint &)<br>
> > {<br>
> > #ifdef QT_MAC_USE_COCOA<br>
> ><br>
> >     Q_UNUSED(c);<br>
> >     return;<br>
> ><br>
> > #else<br>
</div>This function is internal anyway, I guess. So we can safely blacklist it.<br>
<div class="im"><br>
> Sorry for all the naive questions. I hope somebody with some knowledge can<br>
> see something here.<br>
</div>No problem. The questions aren't naive at all. The smoke internals are a<br>
little complex :)<br>
<font color="#888888"><br>
--<br>
</font><div class="im">Arno Rehn<br>
<a href="mailto:arno@arnorehn.de">arno@arnorehn.de</a><br>
</div><div><div></div><div class="h5">_______________________________________________<br>
Kde-bindings mailing list<br>
<a href="mailto:Kde-bindings@kde.org">Kde-bindings@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kde-bindings" target="_blank">https://mail.kde.org/mailman/listinfo/kde-bindings</a><br>
</div></div></blockquote></div><br></div>