Don't install headers of builtins into the global install prefix - #22958
Don't install headers of builtins into the global install prefix#22958hageboeck wants to merge 3 commits into
Conversation
Test Results 20 files 20 suites 3d 2h 17m 54s ⏱️ Results for commit 52dd787. ♻️ This comment has been updated with latest results. |
I was just suggesting to only forward declare So we'd have to update your new post-install test when my PR gets merged. Maybe a more robust way (independent of my PR getting merged or not) to test what you actually want to cover ("ensure that the VDT headers are found correctly"), is just to check that the Or is there an advantage of testing this indirectly via |
2b895e4 to
42fc1d7
Compare
If VDT is not included, trying to call these functions would produce an error. So we are shifting the error on inclusion to an error on call. I think that's fair, but your installation is broken in both cases.
It's not exactly the same: If CMake finds the header (because you gave it enough search hints), you might still not be able to compile an RVec program, because we need to test that all the So should we say:
|
Agreed with that! Let's continue the discussion in #22927 for now, and then adapt the test in this PR. |
42fc1d7 to
a4f5506
Compare
In order not to install the vdt headers into /usr/include or similar, a second find hint is added. This would allow for moving the headers to <ROOT_INCLUDE_DIR>/ROOT/builtins/vdt.
Currently, vdt headers are installed directly into ROOT's header install directory, which may clash with a genuine installation of vdt. Here, it's moved to <HeaderDir>/ROOT/builtins/. Partial fix of root-project#8655.
One of the only builtins that ROOT depends on publicly is VDT. When using RVec.h, the VDT headers need to be visible, so this small test tries to invoke a VDT function on an RVec.
a4f5506 to
52dd787
Compare
This improves the situation of #8655, by not unconditionally installing the XRootD and vdt headers into /include.
XRootD headers aren't installed at all (all ROOT targets depend on it only privately), but vdt headers are needed when RVec.hxx is used from a ROOT that has vdt enabled. To cover the latter case, a small post-install test was added.