I'm also trying to build the latest pyside from GIT in windows using visual studio 2008 (not express) partly using the createpackage.js. I found some odd things: 1) I had to specify -G "NMake Makefiles" to force make to create a Makefile and not a VS2010 or VS2008 solution. 2) Since "shiboken/tests/libsample/samplenamespace.h" contains an "#ifndef _MSC_VER" to remove "SampleNamespace::DerivedFromNamespace::SampleNamespace" I had to ifdef away the usage of it in "shiboken/tests/samplebinding/sample/sample_python.h". 3) I got loads of "ProtectedPolymorphicWrapperprotectedName_protected" and "OtherDerivedWrapperclassName_protected" in "shiboken/tests/samplebinding/sample", i.e. the class name got prepended to the method name. Removing these makes it build and pass the tests.

Other than that I get the same error as Dan. Removing the case to call "int registerTimer(int interval, QObject * object)" I get a little bit further, but it fails on:

[ 2%] Building CXX object PySide/QtCore/CMakeFiles/QtCore.dir/PySide/QtCore/qabstractitemmodel_wrapper.cpp.obj
qabstractitemmodel_wrapper.cpp
E:\dev\qt\pyside\build\pyside\PySide\QtCore\PySide\QtCore\qabstractitemmodel_wrapper.cpp(3394) : error C2660: 'QAbstractItemModelWrapper::parent' : function does not take 0 arguments

It seems to have a hard time differentiating between virtual and non-virtual methods with the same name, e.g.: virtual QModelIndex QAbstractItemModel::parent(const QModelIndex& index ) const = 0
QObject* QObject::parent() const

and
int QAbstractEventDispatcher::registerTimer(int interval, QObject * object) virtual void QAbstractEventDispatcher::registerTimer(int timerId, int interval, QObject * object) = 0

/Stefan

On 2010-11-09 16:22, Dan Halbert wrote:
On Monday, November 8, 2010 2:54pm, "Dan Halbert"<halb...@halwitz.org>  said:
Scanning dependencies of target QtCore
[  2%] Building CXX object
PySide/QtCore/CMakeFiles/QtCore.dir/PySide/QtCore/qabstracteventdispatcher_wrapper.cpp.obj
qabstracteventdispatcher_wrapper.cpp
...pyside-pkgsetup-0.4.2\modules\pyside\build\PySide\QtCore\PySide\QtCore\qabstracteventdispatcher_wrapper.cpp(999)
: error C2660: 'QAbstractEventDispatcherWrapper::registerTimer' : function does 
not take 2 arguments
I am still trying to do a Windows build, and am stuck on the error above, which 
does not fail in the Linux build.

In QAbstractEventDispatcher, registerTimer() is declared in an overloaded way:

     int registerTimer(int interval, QObject *object);
     virtual void registerTimer(int timerId, int interval, QObject *object) = 0;

Notice that one is virtual and one is not. The non-virtual one is implemented 
in the corresponding qabstracteventdispatcher.cpp file.

QAbstractEventDispatcherWrapper is a shiboken-generated subclass of 
QAbstractEventDispatcher, and declares registerTimer only as

     virtual void registerTimer(int timerId, int interval, QObject * object);

The error above is due to these two lines:

(959)    cppSelf = 
(QAbstractEventDispatcherWrapper*)Shiboken::Converter<QAbstractEventDispatcher*>::toCpp(self);
    ...
(999)                    int cppResult = cppSelf->registerTimer(cppArg0, 
cppArg1);


I don't know enough about shiboken and the vagaries of the generated C++ code 
to diagnose this. If anyone has any clues, I would be grateful. I am using full 
Visual Studio 2008 SP1, built against QT 4.7.0 and Python 2.6.6, and the latest 
git head PySide sources, as of yesterday.

Dan


_______________________________________________
PySide mailing list
PySide@lists.openbossa.org
http://lists.openbossa.org/listinfo/pyside

_______________________________________________
PySide mailing list
PySide@lists.openbossa.org
http://lists.openbossa.org/listinfo/pyside

Reply via email to