Ho to create the THtml doc with ROOT 5.15

Hello,
We are trying to create the HTML doc for some “custom class” from the “custom” shared library with ROOT 5.15
This is a large script which essentially does what the THtml class instructs us to do
root.cern.ch/root/htmldoc/THtml.html#usage

Namely,

  1. It Loads the class shared library
  2. It sets the search path with the root.cern.ch/root/htmldoc/THtml. … tSourceDir
  3. It does check the class source file is available under
    h.GetSourceDir()+MyClass::Class()->GetImpFileName()
    In addition, the later proves the shared lib with our classes dictionary was really loaded.
  4. Anyway the MakeClass keep saying something like this
    Error in : Unknown class ‘TEmbeddedPad’ !

However, if we artificially move all our “custom classes” under $ROOTSYS and add them to the “system map” then the same macro does create the docs properly.

Did we miss some obvious and mandatory step?

Thank you

Hi Valeri,

when did you load the lib - before or after it says “CreateListOfClasses: initializing” (do it before)? Do you run MakeAll() or MakeClass(const char* name)?

I need the macro reproducing what you do, and if possible the exact output. We have one “external” test case where things worked.

Cheers, Axel.

[quote=“Axel”]Hi Valeri,

when did you load the lib - before or after it says “CreateListOfClasses: initializing” (do it before)? Do you run MakeAll() or MakeClass(const char* name)?

I need the macro reproducing what you do, and if possible the exact output. We have one “external” test case where things worked.

Cheers, Axel.[/quote]It may take time to create such extraction. (i need to prepare a couple of the fake “packages” those the simplified macro need to make the docs for). That’s why I did ask whether you see any “obvious” (undocumented yet) omissions. For example, does one need to create the “map”? Can we proceed other way around? Can you give me the test you use to test the THtml package to compare with my code?

Thank you

Hi Valeri,
the example is complex as well, see cmsaf.mit.edu/hiroot/ClassIndex.html. Could you send me the macro you use to generate the html pages and the exact output?
Cheers, Axel.

[quote=“Axel”]Hi Valeri,
the example is complex as well, see cmsaf.mit.edu/hiroot/ClassIndex.html. Could you send me the macro you use to generate the html pages and the exact output?
Cheers, Axel.[/quote]I was not able to upload the files via RootForum. I’ve sent it by regular E-mail.

This is the script that I am running to generate the Reference Manual.
The script uses another script (loadlibs.C in attachment) loading all the shared libs to be included in the generated documentation.

void html(const char* option="") { gEnv->SetValue("Unix.*.Root.Html.SourceDir", ".:src:include:test"); gEnv->SetValue("Root.Html.ViewCVS","http://root.cern.ch/viewcvs/"); gEnv->SetValue("Root.Html.Search", "http://www.google.com/search?q=%s+site%3Aroot.cern.ch%2Froot%2Fhtml"); gROOT->ProcessLine(".x loadlibs.C"); THtml htmldoc; htmldoc.SetEscape(255); //htmldoc.SetDotDir("/Users/brun/graphviz-2.8/bin"); if (strcmp(option,"all")) htmldoc.MakeAll(kFALSE,"*"); else htmldoc.MakeAll(kTRUE,"*"); }
loadlibs.C (3.08 KB)

Hello Rene. Thank you very much for your macro.

The difference between your macro and one from STAR that STAR did not create the docs in one step.
In addition we do not use gEnv->SetValuewe use the root.cern.ch/root/htmldoc/THtml. … tSourceDir directly

You did
[ul] 1. Define all packages and all src directories
2. Load the package shared libraries
3. Make documentation.[/ul] So far we did

{ THtml html; foreach STAR package { // set the package source path // load the package shared lib // call MakeClass } } Axel, has told me that should not work with his new THtml class anynore and we has to redesign our macros. I’ll try that.
Thank you