[ 
https://issues.apache.org/jira/browse/PROTON-254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13607027#comment-13607027
 ] 

Keith Wall commented on PROTON-254:
-----------------------------------

1) Committed patch to resolve the compilation problems that occur when 
compiling the the swig generated java binding code with a C++ compiler.  Tested 
with g++ on:

Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3,
and i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 
5658) (LLVM build 2336.11.00)

2) Also attaching a further patch to this JIRA for comment.  This candidate 
resolves the Swig 'Nested union not currently supported' issue discussed above 
simply by moving the union type to top level.  This allows Swig to process the 
type when running in C++ mode and generate the corresponding java class 
pn_atom_t_u.   With this patch applies the mvn clean test -Pproton-jni passes 
clean on both ubuntu and mac os x.  Not tested on Windows yet.



                
> Swig generated c code for java bindings fails to compile on Windows Visual 
> Studio 2010
> --------------------------------------------------------------------------------------
>
>                 Key: PROTON-254
>                 URL: https://issues.apache.org/jira/browse/PROTON-254
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: 0.4
>         Environment: Windows 7
> Visual Studio 2010
>            Reporter: Keith Wall
>            Assignee: Cliff Jansen
>         Attachments: make-proton-jni-cxx-errors.txt
>
>
> Swig generated C code for the Java bindings fails to compile on Visual Studio 
> 2010 with error message:
> C1083: Cannot open include file: 'stdbool.h': No such file or directory
> After discussion on list [1], we tried changing bindings/java/CMakeLists.txt 
> to use CPLUSPLUS ON directive to CMake in the case where BUILD_WITH_CXX has 
> been enabled earlier in the build.
> if (BUILD_WITH_CXX)
>    SET_SOURCE_FILES_PROPERTIES(java.i PROPERTIES CPLUSPLUS ON)
> endif (BUILD_WITH_CXX)
> Switching to CPP in this way exposed a number of errors when compiling the 
> CPP code resulting from the java.i (casting issues, pointer arithmetic etc - 
> see attached make-proton-jni-cxx-errors.txt).  However, even after resolving 
> the CPP compilation issues, we then encounter a problem with Swig's handling 
> of nested unions when when CPP.  The seeming inability of SWIG (when used 
> with CPP) to represent the union means that SWIG does not produce 
> pn_atom_t_u.java.  JNIMessage.java, which references pn_atom_t_u, 
> consequently fails to compile.
> The warning from swig is:
> /home/keith/src/proton/proton-c/include/proton/codec.h:91: Warning 312: 
> Nested union not currently supported (ignored).
>  
> [1] 
> http://mail-archives.apache.org/mod_mbox/qpid-proton/201302.mbox/%3ccamyv19mgbdvd2wextvpwywtysskadokb7wtj+u-3jkncwdx...@mail.gmail.com%3E

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to