[
https://issues.apache.org/jira/browse/PROTON-254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13593140#comment-13593140
]
Cliff Jansen commented on PROTON-254:
-------------------------------------
This error also happens on Linux with -DBUILD_WITH_CXX.
It's a catch 22. swig fails because it worries about complexities of nested
structures that don't affect us since proton doesn't use any C++ outside C.
The fact that JNI defines separate calls in C and C++ makes it an unnatural act
to feed a swig C wrapper to a C++ compile.
So it looks like a custom wrapper object needs to be made for pn_atom_t_u.
Fortunately, older versions of swig would create working wrappers for the
nested structure. So, even though my swig expertise is minimal, I hope to be
able to use the wrapper from the older swig as a basis for a generic version.
> 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