Reorganize XRT header files under core/include #8648
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem solved by the commit
Under runtime_src/core/include we have a bunch of more or less random header files. Some are completely internal to XRT and are not exported, but several are exported in an install target to XRT_INSTALL_INCLUDE_DIR.
This PR, while work-in-progress, moves all exported header files under
core/include/xrt
. For legacy XRT installs, header wrappers are added in the old location(s) such that applications can continue to compile after the move.. It is strongly advised that application change to include headers from the new location(s), pragma messages will advise.Bug / issue (if any) fixed, which PR introduced the bug, how it was discovered
We cannot have the content of the top-level include directory exported into e.g. /usr/include, so all the files have to be (re)moved or not exported.
How problem was solved, alternative solutions (if any) and why they were rejected
Move exported headers from -> to:
include/*.* -> include/xrt/detail
include/deprecated -> include/xrt/deprecated
include/experimental -> include/xrt/experimental
Create wrappers to preserve compilation of existing applications until they are changed.
Update driver sources for DKMS to copy the actual headers rather than the new wrappers.
Update all XRT source code to include from new location with the exception of code that is shared between
userspace and driver. For these latter situations, a few header wrappers remain in
core/include
and are included from this location. When DKMS builds sources the wrappers have been replaced with the actual files.Risks (if any) associated the changes in the commit
Risks are primarily edge builds, which I couldn't validate sufficiently. This PR is bound to fail CI as is. and will be updated with help from others.
What has been tested and how, request additional testing if necessary
Manual build of legacy XRT application.
Documentation impact (if any)