Le 03/02/2011 15:10, Marcelo Lira a écrit :
On Thu, Feb 3, 2011 at 9:32 AM, Marcelo Lira<[email protected]>  wrote:
On Mon, Jan 31, 2011 at 2:25 PM, Sylvain Meunier
<[email protected]>  wrote:
Hello,

I'm evaluating PySide for later productions using Visual Studio 8 (targeting
x86 platform), Python 2.6.2 and Qt 4.7.

I successfully tested the latest PySide binaries with Python 2.6.2. Then I
tried to compile all the libraries and the tools (Qt, Pyside...) from
scratch because of various production constraints and several problems
appeared.

I found some workaround for compiling PySide but i'm getting stuck with the
simple libfoo sample.



Next I detail the various problems and workaround I used. Maybe you can help
me for building the libfoo binding.



I compiled Qt then I tried to compile PySide and the associated tools, but
PySide failed to compile :

[ 73%] Building CXX object
PySide/QtNetwork/CMakeFiles/QtNetwork.dir/PySide/QtNetwork/qsslconfiguration_wrapper.cpp.obj
qsslconfiguration_wrapper.cpp
c1xx : fatal error C1083: Cannot open source file:
'C:\Users\Sylvain\Desktop\PySide\Temp\pyside\build\PySide\QtNetwork\PySide\QtNetwork\qsslconfiguration_wrapper.cpp':
No such file or directory
NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~2\VC\bin\cl.exe' : return
code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio
8\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio
8\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
FAILED



I dodged the problem by commenting HAS_QT_MODULE(QT_QTNETWORK_FOUND
QtNetwork) in pyside\PySide\CMakeLists.txt.

The following tests FAILED:
        109 - QtCore_qthread_signal_test (Timeout)
        224 - QtNetwork_bug_446 (Failed)
        225 - QtNetwork_basic_auth_test (Failed)
        226 - QtNetwork_accessManager_test (Failed)
        227 - QtNetwork_http_test (Failed)
        228 - QtNetwork_tcpserver_test (Failed)
        229 - QtNetwork_udpsocket_test (Failed)
        230 - QtWebKit_bug_448 (Failed)
        231 - QtWebKit_webpage_test (Failed)
        232 - QtWebKit_webview_test (Failed)
        257 - QtDeclarative_bug_451 (Failed)
        258 - QtDeclarative_bug_456 (Failed)
        259 - QtDeclarative_bug_557 (Failed)
        260 - QtDeclarative_qdeclarativenetwork_test (Failed)
        261 - QtDeclarative_qdeclarativeview_test (Failed)
        262 - QtDeclarative_connect_python_qml (Failed)
        263 - QtDeclarative_registertype (Failed)



Next I tryed to bind the libfoo example :

cmake -G "Visual Studio 8 2005"
-DGENERATOR=C:\Users\Sylvain\Desktop\PySide\Temp\PySideInstall\bin\generatorrunner.exe
-DShiboken_DIR=C:\Users\Sylvain\Desktop\PySide\Temp\PySideInstall\lib\cmake\Shiboken-1.0.0
-DPySide_DIR=C:\Users\Sylvain\Desktop\PySide\Temp\PySideInstall\lib\cmake\PySide-1.0.0
..

-- Using default python: python2.6
-- libshiboken built for Release
-- Avoiding protected hack!
CMake Warning (dev) at
C:/Users/Sylvain/Desktop/PySide/Temp/PySideInstall/lib/cm
ake/PySide-1.0.0/PySideConfig-python2.6.cmake:8 (SET):
  Syntax error in cmake code at


  C:/Users/Sylvain/Desktop/PySide/Temp/PySideInstall/lib/cmake/PySide-1.0.0/Py
SideConfig-python2.6.cmake:8

  when parsing string

    C:/Users/Sylvain/Desktop/PySide/Temp/PySideInstall\Lib\site-packages

  Invalid escape sequence \L

  Policy CMP0010 is not set: Bad variable reference syntax is an error.  Run
  "cmake --help-policy CMP0010" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.
Call Stack (most recent call first):
  C:/Users/Sylvain/Desktop/PySide/Temp/PySideInstall/lib/cmake/PySide-1.0.0/PySi
deConfig.cmake:5 (include)
  CMakeLists.txt:7 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
CMake Warning (dev) at foo/CMakeLists.txt:27 (add_library):
  Policy CMP0008 is not set: Libraries linked by full-path must have a valid
  library file name.  Run "cmake --help-policy CMP0008" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  Target "foo" links to item

    C:/Users/Sylvain/Desktop/PySide/foobinding-cmake/../libfoo/libfoo.so
On windows "libfoo.so" should changed on the CMakefiles to "libfoo.dll".

  which is a full-path but not a valid library file name.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to:
C:/Users/Sylvain/Desktop/PySide/foobinding-
cmake/build



I fixed lib\cmake\PySide-1.0.0\PySideConfig-python2.6.cmake by replacing
some slashes and foobinding-cmake\foo\CMakeLists.txt by using
${LIBFOO_DIR}/release/foo.dll instead of ${LIBFOO_DIR}/libfoo.so :

-- Using default python: python2.6
-- libshiboken built for Release
-- Avoiding protected hack!
-- Configuring done
-- Generating done
-- Build files have been written to:
C:/Users/Sylvain/Desktop/PySide/foobinding-cmake/build



After a try in Visual Studio :

2>------ Build started: Project: Foo, Configuration: Debug Win32 ------
2>Running generator for Foo...
2>Compiling...
2>math_wrapper.cpp
2>c1xx : fatal error C1083: Cannot open source file:
'.\foo\math_wrapper.cpp': No such file or directory
2>foo_module_wrapper.cpp
2>c1xx : fatal error C1083: Cannot open source file:
'.\foo\foo_module_wrapper.cpp': No such file or directory
2>Generating Code...
2>Build log was saved at
"file://c:\Users\Sylvain\Desktop\binding-tutorial\foobinding-cmake\build\foo\Foo.dir\Debug\BuildLog.htm"
2>Foo - 2 error(s), 0 warning(s)



I checked the result of generatorrunner using the command line from the
vcproj :

C:\Users\Sylvain\Desktop\PySide\Temp\PySideInstall\bin\generatorrunner.exe
--generatorSet=shiboken --enable-parent-ctor-heuristic
--enable-pyside-extensions --enable-return-value-heuristic
C:/Users/Sylvain/Desktop/PySide/foobinding-cmake/foo/global.h
--include-paths=C:/Qt/2010.05/qt/include:C:/Users/Sylvain/Desktop/PySide/foobinding-cmake/../libfoo
--typesystem-paths=C:/Users/Sylvain/Desktop/PySide/Temp/PySideInstall/share/PySide/typesystems
--output-directory=C:/Users/Sylvain/Desktop/PySide/foobinding-cmake/build/foo
C:/Users/Sylvain/Desktop/PySide/foobinding-cmake/foo/typesystem_foo.xml



And I got :

Generating class model...                    [OK]
Fixing class inheritance...                  [OK]
Detecting inconsistencies in class model...  [OK]
Detecting inconsistencies in typesystem...   [WARNING]
    type 'QUrl' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QPoint' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QXmlStreamEntityDeclaration' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QAbstractItemModel' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QXmlStreamAttributes' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QRectF' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QBuffer' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QMetaProperty' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QFileInfo' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QModelIndex' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QLine' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QAbstractFileEngineHandler' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QTextBoundaryFinder' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QWaitCondition' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QXmlStreamEntityResolver' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QTextCodec::ConverterState' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QFileSystemWatcher' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QResource' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QChildEvent' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QLibraryInfo' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QSignalMapper' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QXmlStreamNamespaceDeclaration' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QIODevice' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QPluginLoader' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QParallelAnimationGroup' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QTemporaryFile' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QTextEncoder' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QTime' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QAbstractTransition' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QAbstractListModel' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QUuid' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QCryptographicHash' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QHistoryState' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QSignalTransition' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QReadWriteLock' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QRegExp' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QBitArray' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QMimeData' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QMutex' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QSequentialAnimationGroup' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QTextStreamManipulator' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QAnimationGroup' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QTranslator' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QStateMachine::WrappedEvent' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QDataStream' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QFile' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QObject' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QTimer' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QEasingCurve' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QEventLoop' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QDirIterator' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QAbstractTableModel' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QStateMachine' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QTextCodec' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QTextStream' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QFactoryInterface' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QState' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QMetaEnum' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'Math' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QProcess' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QAbstractFileEngine' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QPointF' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QStateMachine::SignalEvent' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QTimeLine' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QXmlStreamNotationDeclaration' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QSettings' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QSystemLocale' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QAbstractAnimation' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QFSFileEngine' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QDir' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QLineF' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QMetaMethod' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QSemaphore' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QDynamicPropertyChangeEvent' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QAbstractState' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QSysInfo' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QCoreApplication' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QThread' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QVariantAnimation' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QPauseAnimation' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QPropertyAnimation' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QXmlStreamAttribute' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QTextDecoder' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QByteArrayMatcher' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QBasicTimer' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QByteArray' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QMargins' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QMutexLocker' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QTimerEvent' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QSize' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QFinalState' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QAbstractFileEngineIterator' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QEventTransition' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QProcessEnvironment' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.
    type 'QXmlStreamWriter' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QSizeF' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QXmlStreamReader' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QSystemSemaphore' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QMetaClassInfo' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QLocale' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QRect' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QReadLocker' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QWriteLocker' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QRunnable' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QThreadPool' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QAbstractEventDispatcher' is specified in typesystem, but not
defined. This could potentially lead to compilation errors.
    type 'QDate' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QDateTime' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QSocketNotifier' is specified in typesystem, but not defined. This
could potentially lead to compilation errors.
    type 'QEvent' is specified in typesystem, but not defined. This could
potentially lead to compilation errors.
    type 'QPersistentModelIndex' is specified in typesystem, but not defined.
This could potentially lead to compilation errors.

Done, 111 warnings (0 known issues)
When you get those "type 'FOOBARCLASS' is specified in typesystem, but
not defined. This could potentially lead to compilation errors."
messages it means the generator could not found the headers for the
mentioned classes. The paths where it should search are passed in the
--include-path="PATH" argument.
I saw that you used
"--include-paths=C:/Qt/2010.05/qt/include:C:/Users/Sylvain/Desktop/PySide/foobinding-cmake/../libfoo"
on Windows the path separator must be ";" and not ":".

The libfoo example was never tried on Windows, so it unfortunately had
this rough edges. I'll see to it.

It is possible that the QtNetwork module issues were due to similar
include path problems. When that happens the generator outputs
non-sense like "_python.h" files instead of "yourmodule_python.h".



generatorrunner doesn't provide the *_wrapper.cpp files and I can't find a
workaround for this last problem.

If you want some additional data or informations, please ask me.

Thanks for any advices


Sylvain Meunier

_______________________________________________
PySide mailing list
[email protected]
http://lists.openbossa.org/listinfo/pyside

Marcelo Lira

Sylvain, I've updated the tutorial sources in a way that should be
friendlier to windows:
http://pyside.org/files/binding-tutorial.tar.gz

Marcelo Lira

Thanks for your help. I'm sure all the curious Windows developers will be happy. :)
_______________________________________________
PySide mailing list
[email protected]
http://lists.openbossa.org/listinfo/pyside

Reply via email to