[cmake-developers] why can target_include_directories() not be applied to custom targets?

Petr Kmoch petr.kmoch at gmail.com
Sun Jul 8 05:16:46 EDT 2018


Hi Drew,

a custom target can do literally anything, it's just a buildsystem wrapper
for running arbitrary executables; or often not even that, and is just a
collection of custom commands. There is nothing CMake automatically does
with the properties [INTERFACE_]INCLUDE_DIRECTORIES set on a custom command.

Note that if you need the properties set for some reason (i.e. if your
custom command/target code uses them for something), you can still set them
just fine using set_property() or set_target_properties(). However, I
expect this to be a very rare thing to do, so I think it's OK
target_include_directories() actually errors out on custom targets. IMO
it's much more likely that a non-custom target was intended.

(Note that I am just an ordinary CMake user, so the above is in no way
"official.")

Petr

On 7 July 2018 at 21:27, Drew Parsons <dparsons at debian.org> wrote:

> Commit 510fdcb18801076e2041eaae2941375eecc93ec2 at
> https://gitlab.kitware.com/cmake/cmake/commit/
> 510fdcb18801076e2041eaae2941375eecc93ec2
> prevents custom targets from using target_include_directories().
>
> This makes no sense to me.  A custom target is still a target. It needs
> to be compiled, it uses -I flags.
>
> Can you explain the ban on applying target_include_directories() to
> custom targets?
>
> Drew
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/
> opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> https://cmake.org/mailman/listinfo/cmake-developers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake-developers/attachments/20180708/498452ff/attachment.html>


More information about the cmake-developers mailing list