Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-1844

Avro-C build procedure doesn't set include paths for Jansson

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.8.0
    • 1.9.0
    • c
    • None
    • gcc 4.9.3, Scientific Linux Fermi release 6.7

    Description

      I `configure` Jansson with a user-space `PREFIX` because I don't have root access, and when I `make install`, the Jansson includes and libs appear in new `include` and `lib` directories, as expected.

      I `cmake` with `-DCMAKE_INSTALL_PREFIX:PATH=` the same path as `PREFIX` and CMake is successful: it finds Jansson and makes the Makefiles.

      BUT, when I `make`, it fails because it can't find `jansson.h`. The same is true if I explicitly set `PKG_CONFIG_PATH` to point to `$PREFIX/lib/pkgconfig` and `pkg-config jansson --cflags --libs` works.

      If I explicitly add full paths to Avro's and Jansson's `#include <jansson.h>` lines in the source code, Avro compiles without trouble. (`avro-c-1.8.0/src/schema.c`, `avro-c-1.8.0/src/value-json.c`, `include/jansson.h`)

      Presumably, the Jansson part of the build process is only partly implemented, such that the CMake script searches for the appropriate version but `-I` flags are not generated for the compiler. I don't know enough CMake to know where to insert these.

      Fixing this issue is the only way I know of to make Avro-C installable on a system without root access, apart from the hack I described above.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jpivarski Jim Pivarski
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: