Skip to content
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

Incomplete dictionary library installation for edep-disp #3

Closed
brettviren opened this issue Nov 9, 2017 · 3 comments
Closed

Incomplete dictionary library installation for edep-disp #3

brettviren opened this issue Nov 9, 2017 · 3 comments

Comments

@brettviren
Copy link
Contributor

After PR #2 is applied a remaining problem is that loading libedepdisp into ROOT gives two categories of error:

$ root -l
root [0] gSystem->Load("libedepsim")
(int) 0
root [1] gSystem->Load("libedepdisp")
Warning in <TClassTable::Add>: class TG4PrimaryVertex already in TClassTable
Warning in <TClassTable::Add>: class TG4PrimaryParticle already in TClassTable
Warning in <TClassTable::Add>: class TG4Trajectory already in TClassTable
Warning in <TClassTable::Add>: class TG4TrajectoryPoint already in TClassTable
Warning in <TClassTable::Add>: class TG4HitSegment already in TClassTable
Warning in <TClassTable::Add>: class TG4Event already in TClassTable
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for TG4PrimaryVertex.h
   requested to autoload type TG4PrimaryVertex
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for TG4PrimaryVertex.h
   requested to autoload type TG4PrimaryParticle
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for TG4Trajectory.h
   requested to autoload type TG4Trajectory
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for TG4Trajectory.h
   requested to autoload type TG4TrajectoryPoint
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for TG4HitSegment.h
   requested to autoload type TG4HitSegment
Error in <TCling::RegisterModule>: cannot find dictionary module libedepdisp_edepsim_rdict.pcm
(int) 0

The first is I think due to the "stolen" pattern in display/CMakeLists.txt and the second is maybe because the edepdisp_edepsim dictionary files are not being installed. Given the "stolen" pattern, I'm not sure what the "right" fix is. My guess is there is a conflict of intentions between in-source build/use and installed use.

@ClarkMcGrew
Copy link
Owner

I'm guessing the right fix is to not use the "stolen" pattern which is an embarrassment used to get things working. In older roots, the stolen code was being dynamically generated using MakeProject, but that doesn't seem to work with ROOT 6 when the display is used in-source. Maybe the best solution is to break the handful of ROOT tree classes into their own stand along library that doesn't depend on the libedepsim.

@brettviren
Copy link
Contributor Author

Yes, I think indeed, making a stand alone data lib would be best.

@ClarkMcGrew
Copy link
Owner

A stand alone library is not included for the i/o classes. It can be used in an external project with

find_package(EDepSim)

and later added to a link with

target_add_library(EDepSim::edepsim_io)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants