I am using Ubuntu Precise and the latest version of lp:smoke-gobject. cmake succeeds.
kaleo@tequila:~/dev/smoke-gobject$ make
[ 2%] Building CXX object src/CMakeFiles/gsmoke.dir/gobjectnamespace.cpp.o
/home/kaleo/dev/smoke-gobject/src/gobjectnamespace.cpp: In constructor ‘Smoke::GObjectNamespace::GObjectNamespace(const QByteArray&, Smoke::NamespaceInitializer)’:
/home/kaleo/dev/smoke-gobject/src/gobjectnamespace.cpp:145:134: error: invalid conversion from ‘Smoke::StaticMetacallHandler {aka int (*)(QMetaObject::Call, int, void**)}’ to ‘QMetaObjectExtraData::StaticMetacallFunction {aka void (*)(QObject*, QMetaObject::Call, int, void**)}’ [-fpermissive]
/usr/include/qt4/QtCore/qobject.h: In member function ‘int (* Smoke::GObjectNamespace::createStaticMetacall(int))(QMetaObject::Call, int, void**)’:
/usr/include/qt4/QtCore/qobject.h:113:933: error: ‘static void QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’ is private
/home/kaleo/dev/smoke-gobject/src/gobjectnamespace.cpp:399:45: error: within this context
/home/kaleo/dev/smoke-gobject/src/gobjectnamespace.cpp:399:74: error: invalid conversion from ‘void (*)(QObject*, QMetaObject::Call, int, void**)’ to ‘void (*)(ffi_cif*, void*, void**, void*)’ [-fpermissive]
/usr/include/x86_64-linux-gnu/ffi.h:303:1: error: initializing argument 3 of ‘ffi_status ffi_prep_closure(ffi_closure*, ffi_cif*, void (*)(ffi_cif*, void*, void**, void*), void*)’ [-fpermissive]
make[2]: *** [src/CMakeFiles/gsmoke.dir/gobjectnamespace.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/gsmoke.dir/all] Error 2
make: *** [all] Error 2
Reproduced on Arch Linux current. It seems to stem from a change in private/ undocumented parts of Qt with version 4.8