[Cl-smoke] Building cl-smoke on Mac OS X

Tobias Rautenkranz tobias at rautenkranz.ch
Sun Feb 28 10:20:36 CET 2010


> Actually, I think it is still a pathing issue. It seems that setting
> cffi:*foreign-library-directory* is not sufficient, but when I copy the
> dylib files to the current directory it seems to work ok.
I have no idea what's wrong.

> At any rate, on to the next error. This one's in cl-smoke.qt.core:
> "file /Users/elliott/Programming/Lisp/asdf/qt.core/src/event.lisp"
> ;       Symbol "TYPE" not found in the CXX package.
cl-smoke should have constructed the generic function cxx:type at this point.
(a ffi problem?)

You can see if cl-smoke found the QEvent::type() function, by invoking the 
ABORT restart when the error occurs. Since the qtcore module is already loaded 
at this point, you can list the methods with:
(smoke::fgrep-methods cl-smoke.qt.core::*smoke-module* "type")
which should give you a list of methods containing the word "type". e.g.:
public QEvent::Type QEvent::type() const
[...]

You can also try tracing the generic-function construction of cl-smoke:
(require :cl-smoke.smoke)
(trace smoke::ensure-generic-methods)
(require :cl-smoke.qt.core)
 0: (SMOKE::ENSURE-GENERIC-METHODS
      ((CXX::WRITE-CURRENT-TOKEN . "writeCurrentToken")
       (CXX::WRITE-START-ELEMENT . "writeStartElement")
       (CXX::WRITE-START-DOCUMENT . "writeStartDocument")
	[...]
       (CXX::TYPE . "type")
	[...]
       (CXX::QT-METACALL . "qt_metacall") (CXX::TR-UTF8 . "trUtf8")
       (CXX::QT-METACAST . "qt_metacast") (CXX::META-OBJECT . "metaObject")
       (CXX::|| . "")))
  0: SMOKE::ENSURE-GENERIC-METHODS returned NIL


I doubt that the problem is there, but can you check that smoke picked up the 
QEvent::type() method by using the kdebindings smokeapi tool:
kdebindings-build/smoke/smokeapi$ ./smokeapi -m type QEvent
QEvent::Type QEvent::type() const


> P.S. Did you mean to take this off the list?
No, user error ;)





More information about the Cl-smoke mailing list