libgit2 / docurium

Doxygen replacement for the libgit2 project
http://libgit2.github.com/libgit2
MIT License
158 stars 25 forks source link

docparser cleanups #39

Closed tiennou closed 4 years ago

tiennou commented 5 years ago

This updates how we interface with clang so we get better reporting, limited to one error (which is usually a bad sign), the possibility to pass custom compile flags (I need to point clang 7.0 to my SDKs headers), as well as some slight filesystem optimizations.

tiennou commented 5 years ago

Rebased. I've added a comment to describe how the test helper is used. I'm planning to work on "fixing" the parallel processing, and implement "--only-missing" on top of that.

(BTW, I have rebased your cmn/docker branch, and extended it to build the actual gem, instead of using the rubygem version).

carlosmn commented 5 years ago

This keeps spewing /usr/include/time.h:29:10: fatal error: 'stddef.h' file not found. What's that about? That seems bad, although the tests do end up passing.

tiennou commented 5 years ago

My hunch is that the ffi/clang default configuration isn't actually platform-specific ? I have no idea, but macOS gives me the same error about time.h, thus I've added DOCURIUM_CFLAGS and have to -isysroot stuff, and it only started about a year ago ?

carlosmn commented 5 years ago

https://stackoverflow.com/questions/20587228/clang-error-stddef-file-not-found suggests installing the clang compiler solves the issue.

carlosmn commented 5 years ago

That did not solve it.. I wonder if this is actually just about reporting and we've never really been able to find stddef.h and this is why we've had issues with size_t.

tiennou commented 5 years ago

It is, actually, and the #ifdef DOCURIUM workarounds can be removed after those fixes. IIRC I uncovered that after adding the logging and fixing the problem with not having the correct "include root" (a.k.a. the missing sys header problems). I don't really understand why it matters, but it seems that ffi/clang also needs weird things done on the environment on Darwin, and I couldn't find a way to use that to fix it, so I went with DOCURIUM_CFLAGS

tiennou commented 5 years ago

Rebased, I've removed DOCURIUM_CFLAGS since the platform detection works transparently now. I have green runs from all "extracted" PRs (though one failed CI), but #26 still has a bit too much changes going on (though it usually fails because of the switch to "in-memory" parsing at the beginning of the patchset).