Replace PUBLIC_{HEADERS,CLASSES} with PRIVATE for plugins - #4205
Open
nvmkuruc wants to merge 1 commit into
Open
Conversation
Collaborator
|
Filed as internal issue #USD-12602 (This is an automated message. See here for more information.) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description of Change(s)
While investigating the feasibility of using the
MODULEcmake library type to facilitate exporting targets for plugins, I observed that several plugins providedPUBLIC_HEADERSandPUBLIC_CLASSES. (This was previously noted in #4079 as well).Usage of
pxr_pluginis for shared libraries that aren't intended to be linked externally linked against. It's not immediately obvious that these headers are useable outside of thepxrproject and that their being tagged asPUBLIC_wasn't an accident.This change removes these headers from the installed
includedirectory.As an aside, I could imagine that for pure organizational purposes, there being a case for pure public headers without any linkage requirements, but that doesn't appear what these are. Future changes might consider disallowing the
PUBLIC_arguments frompxr_plugin. Given thatpxr_libraryoffers "libraries with plugin semantics" (libraries with resources andplugInfo.json), there doesn't seem to be a reason to also offer "plugins with semi-library semantics".Link to proposal (if applicable)
Fixes Issue(s)
Checklist
I have created this PR based on the dev branch
I have followed the coding conventions
I have added unit tests that exercise this functionality (Reference:
testing guidelines)
I have verified that all unit tests pass with the proposed changes
I have submitted a signed Contributor License Agreement (Reference:
Contributor License Agreement instructions)