Clang.jl icon indicating copy to clipboard operation
Clang.jl copied to clipboard

Handle header only functions

Open vchuravy opened this issue 5 years ago • 1 comments

In UCX.jl I used Clang to generate wrappers, but ucx provides a header only function ucp_init:

https://github.com/openucx/ucx/blob/0e37370648f857e23d5775a0c5b3aa609044e43c/src/ucp/api/ucp.h#L1446-L1452 which ended up as

https://github.com/JuliaParallel/UCX.jl/blob/2cc867f6c98f9f5f616f2df5aa1e666880dbfb62/gen/libucp_api.jl#L33-L35

and since it is a static header-only function it does not end up the shared object file.

x-ref: https://github.com/openucx/ucx/issues/5404

vchuravy avatar Jul 13 '20 21:07 vchuravy

The implementation of ucp_init is simple, but it's not trivial to handle these header-only helper functions in general, that would be equivalent to implement a C-to-Julia source code translator. I'm doubting whether this can be implemented only using libclang's API. For now, I think we should recognize these functions and skip them at least.

Gnimuc avatar Jul 14 '20 11:07 Gnimuc