As for target_include_directories
, it depends on the target nature.
for headers only libraries, I would use INTERFACE
for the INSTALL_INTERFACE
For other libraries, I would put headers that may be include by third-party target in a different directory than the one used only by the target.
The first one will be declared PUBLIC
for the BUILD_INTERFACE
and INSTALL_INTERFACE
.
For applications, I would declare only PRIVATE
for the BUILD_INTERFACE
and INSTALL_INTERFACE
.
A.