RFR: 7903755: multi header support and special syntax for header file

Maurizio Cimadamore mcimadamore at openjdk.org
Wed Jun 19 16:07:22 UTC 2024


On Wed, 19 Jun 2024 10:01:08 GMT, Athijegannathan Sundararajan <sundar at openjdk.org> wrote:

> jextract currently supports only one header file. If the user wants to extract more than one header file, s/he has to create a containing header that includes multiple headers and jextract the containing header.
> 
> With the current change, jextract supports more than one header file in the command line.
> When multiple headers are specified in command line, --header-class-name option is mandatory and it is enforced.
> 
> In addition to normal file names for header file names, a special syntax such as "<stdio.h>" is also supported. With this, user does not have to write long file name including directories such as /usr/include/stdio.h.
> 
> jextract generates multiple headers by generating a temporary header file. If the command line argument is of the form "<stdio.h>" then jextract generates "#include <stdio.h>" in the auto-generated containing header. If the header specified in of the normal/existing form (say foo.h), then containing header will have #include "foo.h" line.

Note: the jextract guide starts off with an example like this:


$ jextract \
  --include-dir /path/to/mylib/include \
  --output src \
  --target-package org.jextract.mylib \
  --library mylib \
  /path/to/mylib/include/mylib.h

I think we should either update the example or (maybe preferred, to keep things simple) add a simple para where we say that the command line can be simplified by having jextract look for headers in include paths (link to option section).

-------------

PR Review: https://git.openjdk.org/jextract/pull/249#pullrequestreview-2128681819


More information about the jextract-dev mailing list