----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/6302/ -----------------------------------------------------------
(Updated Dec. 17, 2012, 9:37 p.m.) Review request for qpid, Andrew Stitcher, Kenneth Giusti, Steve Huston, and Rafael Schloming. Changes ------- Updated for trunk and reworked to use the platform.h/platform.c structure. Headers now generate automatically thanks to a prior fix from Ken. If approved, I will follow this with an additional change to move the existing src/driver.c to src/posix/driver.c to match the tree structure of the new src/windows/driver.c. This plus the C++ related patches should get us 98% of the way to a Visual Studio build. Description ------- This patch set works with a recent mingw32, cmake 2.8.1, python 2.5, swig 2.0.7. A push-button build is still a ways off. The custom_commands in the cmake script to generate the protocol headers don't work yet on Windows. The most intrusive change was the introduction of a pn_socket_t type to hold a socket on both Windows and Posix platforms. An attempt was made to minimize the use of #ifdefs and split platform code into separate posix and windows directories, as is done for the C++ code. There is so little needed at the moment, this may be overkill. The qpid-proton-posix library was ditched and combined with the main qpid-proton library. Instead, the work is done in CMake to assemble the correct shared and platform specific sources as is done in the C++ tree. The driver.c implementation is proof of concept using Winsock select(). Future work would most likely replace this with an I/O completion port implementation. 1. mkdir ...\trunk\proton-c\build 2. set env vars as per trunk\config.sh set PATH=C:\Program Files (x86)\CMake 2.8\bin;C:\python25;C:\mingw_ptn\bin;C:\Windows\System32;c:\cj\work\amqp\proton\mingw4\trunk\proton-c\build set PYTHONPATH=c:\cj\work\amqp\proton\mingw4\trunk\tests;c:\cj\work\amqp\proton\mingw4\trunk\proton-c;c:\cj\work\amqp\proton\mingw4\trunk\proton-c\build\bindings\python set PYTHON_BINDINGS=c:\cj\work\amqp\proton\mingw4\trunk\proton-c\build\bindings\python set PROTON_HOME=C:\cj\work\amqp\proton\mingw4\trunk 3. generate the headers: cd trunk\proton-c\build python c:\cj\work\amqp\proton\mingw4\trunk\proton-c\src\codec\encodings.h.py >encodings.h python c:\cj\work\amqp\proton\mingw4\trunk\proton-c\src\protocol.h.py >protocol.h 4. build cmake -G "MinGW Makefiles" -DSWIG_EXECUTABLE=C:\swigwin-2.0.7\swig.exe c:\cj\work\amqp\proton\mingw4\trunk\proton-c mingw32-make python ..\..\tests\proton-test This addresses bug QPID-4181. https://issues.apache.org/jira/browse/QPID-4181 Diffs (updated) ----- http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/CMakeLists.txt 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/bindings/python/python.i 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/include/proton/driver.h 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/codec/codec.c 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/engine/engine.c 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/error.c 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/framing/framing.c 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/messenger.c 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/platform.h 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/platform.c 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/proton-dump.c 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/proton.c 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/ssl/ssl_stub.c 1423094 http://svn.apache.org/repos/asf/qpid/proton/trunk/proton-c/src/windows/driver.c PRE-CREATION Diff: https://reviews.apache.org/r/6302/diff/ Testing ------- Fedora, Windows Thanks, Cliff Jansen