-
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Poxy runs into "File name too long" OSError #21
Comments
Oh, wow, what an enormous file name! That's an xml file generated by doxygen, not by poxy specifically, so I'm actually not sure how to avoid that, short of simplifying/refactoring the source C++ to make the doxygen symbol path is shorter.
|
(cc @mosra - get a load of this behemoth filename Doxygen generated 😅) |
Ok so I did some digging into your Since these are template specializations there's no way to make their Doxygen symbols shorter without also losing information (as the specialization's definition is it's identity) - you can't do any clever preprocessor tricks to simplify it without also losing unique specializations. That being said, since practically all template specializations are used simply as a form of static polymorphism and don't actually change interfaces, you can typically avoid emitting documentation for them entirely. My suggestion here would be to tell doxygen to ignore them entirely using a /// @cond
template<typename T>
struct WritConverter<T, /* specialization 1 */> { /* ... */};
template<typename T>
struct WritConverter<T, /* specialization 2 */> { /* ... */};
/// @endcond
|
It is the REQUIRESv<> macro, e.g. here: https://github.com/tim-janik/anklang/blob/trunk/ase/serialize.hh#L387 sed 's/REQUIRESv<[^>]*>/REQUIRES<true>/' -i ase/serialize.hh Which actually allows me to generate documentation for the ase/ dir with poxy. PS: I just fail to get any file listed in the |
Yeah, is there a way to turn that into a Doxygen bug instead? |
Looks like we replied at much the same time. See my suggestion above.
That's an m.css feature, see here. In short, entities need to have some documentation (a brief, detail, a remark, function args, something) in order to appear in the generated HTML. In the case of files, merely using /// @file
/// @brief This is where the serializer lives.
Nothing specific - I'm not (to my knowledge) overriding any options that would impact filename length. My guess is that python's filename handling in Pathlib is stricter on file name length than it needs to be, hence why Doxygen is OK but poxy falls down here. That's a guess, though. I haven't encountered this before. It's also reasonable to suggest that it is a bug in Doxygen for them to be generating filenames that long instead of using a hash or something because holy crap, but that doesn't help here 😅 I can do some long symbol renaming in the XML preprocess step but it's a nontrivial fix so it will have to wait until this weekend at the earliest. Is the |
OH! I've just realized that doxygen has the |
😅 I wonder if we can actually implement something like hashing on our end here--I'm unaware of doxygen internals specifically, but surely we can intercept in the middle?
This is pretty neat! I'll have to remember this for future uses |
Thanks for that. But even pasting your snippet literally into my header file still yields an empty files.html index. Can you please point me to any working example of poxy generating a non-empty files.html ?
Thanks, there is really no need to rush anything for me, I'm just evaluating poxy atm, not using it in production or so ;-) |
Here you go: |
Depending on how your project is structured you may also need a documentation file in the containing directory for the child files to appear, e.g. https://github.com/marzer/muu/blob/master/include/muu/folder.dox (same goes for any other folder that forms part of the documented hierarchy) |
Yup, it's possible. The 'XML v2' stuff I was working on did this to stabilise some IDs and it worked OK. The main issue here would be python falling down with long filenames; since Doxygen uses the IDs as filenames, I'd need to be able to interact with the filesystem to rename them, and it appears that even forming a path to do that will cause the |
FYI, for excessively long names there's another option,
I want to look into that for m.css itself eventually, because I suspect it'll need a lot more than just XML preprocess. And I could possibly implement |
Environment
version and/or commit hash:
Poxy via pip install on Ubuntu 22.04:
Describe the bug
I just tried to get a basic config going to generate docs from:
https://github.com/tim-janik/anklang/tree/trunk/ase
But that soon runs into (warnings omitted):
Additional information
The poxy.toml file is basically copyied from the toml example.
--bug-report
poxy_bug_report.zip
The text was updated successfully, but these errors were encountered: