Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-254

Swig generated c code for java bindings fails to compile on Windows Visual Studio 2010

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • proton-0.4
    • None
    • proton-c
    • Windows 7
      Visual Studio 2010

    Description

      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-3jkncWdXehg@mail.gmail.com%3E

      Attachments

        1. make-proton-jni-cxx-errors.txt
          32 kB
          Keith Wall
        2. 0001-PROTON-254-Resolve-Nested-union-not-currently-suppor.patch
          1 kB
          Keith Wall
        3. pn254-cj-0.patch
          2 kB
          Clifford Jansen

        Issue Links

          Activity

            People

              cliffjansen Clifford Jansen
              kwall Keith Wall
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: