set the cmake install interface directories on the library targets #196
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.
the cmake package gets imported targets generated for use by API consumers.
so they can do
in their cmake code and because KDSoap::kdsoap is an imported target cmake
automatically knows where to find the library. alas, since we didn't
set an interface directory cmake did not know where to find the relevant
headers.
this isn't a problem so long as they are in one of the standard search
paths (e.g. /usr/include), but when the are installed elsewhere (e.g.
/opt/kdsoap/include) they will not be found.
by explicitly setting the INSTALL_INTERFACE to INSTALL_INCLUDE_DIR the
generated KDSoapTargets.cmake will set the relevant path on the target
and thus allow idiomatic use of the imported target without having to
mess with include dirs manually.