Automatic HTML documentation and modules

Hi!

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:

[code]{
THtml html;

html.SetInputDir("A:B");
html.SetProductName("Project");
html.MakeAll();

}[/code]

I am using ROOT version 5.20.

Thank you for your help!

Sebastian

Hi Sebastian,

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.

Cheers, Axel.

Hi,

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.

Cheers,
Sebastian

Hi,

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?

Cheers, Axel.

Hi,

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?

Cheers,
Sebastian

Hi,

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.

Cheers, Axel.