I am trying to get ROOT’s automatic documentation working for my classes. It finds all my classes but somehow it messes up the module hierarchy. Instead of creating two modules A and B for my two source directories it creates many modules for the full absolute path of my directories, e.g. /home/user/workspace/project/A. So I get a module list similar to this:
and not what I would expect
What is going wrong here?
The macro which creates the documentation looks like that:
I am using ROOT version 5.20.
Thank you for your help!
you ran into a very unfortunate bug in THtml that I fixed after v5-20. Please check root.cern.ch/twiki/bin/view/ROOT … _ROOT_Subv on how to build ROOT’s current development snapshot.
Today I upgraded to the latest development snapshot. But unfortunately the problem is not solved for me. I still get the same result. Do I miss something in my macro? Could this problem be related to the shared libraries containing my classes?
I see couple of other issues while generating the documentation which I have already seen with 5.20. I don’t know if they are related. I get many warnings like:
And under the Type Index in my documentation I see many of ROOT’s own types like Double_t.
the fix only made it into ROOT after 5.21/04. The type index does now know where types are defined, so for now it lists all. The warning is a bit tricky: when running THtml::MakeAll() you basically ask THtml to generate the doc for all calsses it knows. Suppose you have a class and THtml doesn’t find its header. Without knowing what the header is you cannot tell whether the class is to be documented or not. So I can either complain about all or none. I could check for the class’s library and only complain if it’s not part of ROOT, but that sounds like a hack… Maybe you have a better idea?
I even tried the latest trunk version including the fixes. But for me it still doesn’t work.
Okay, I understand the problem with the warnings. It seems difficult to solve. I am not so used to the ROOT internals but couldn’t you find out where a class it declared and ignore it if it’s not inside the input directories?
try again with the current trunk; I believe I have found a solution: if TObject.h is not found, THtml will not complain about any of ROOT’s classes.