That's the right place to start. Unfortunately since C libraries often have oddities like random inline C macros before functions you generally need to configure c2nim to tell it how to handle certain things. It's often easier to do each header separately.
Normally I take the route of just commenting out the offending lines in the headers, but I too just learned about the `header_opts.c2nim` usage above. :-) Can you post an example of the line where c2nim breaks so people here could help with what config options would resolve it? (Also, I think I'm gonna try and patch c2nim to print what lines it's skipping or having issues with. It's annoying to have not have it print out the context (the last few lines) where it died in strict mode, or what lines it skipped in non-strict mode. I'm just too lazy to wanna switch windows to my text editor. ;) )