[cmake-developers] target_include_directories() accepts only absolute paths ?

Stephen Kelly steveire at gmail.com
Tue Jan 29 04:23:10 EST 2013


Brad King wrote:

> On 01/28/2013 02:30 PM, Brad King wrote:
>> Can we consider using syntax to make this unambiguous?
>> 
>> What's missing is a concise syntax to say that a string *is* a target.
>> One could write
>> 
>>  $<TARGET_PROPERTY:bar,INTERFACE_COMPILE_DEFINITIONS>
>> 
>> but that exposes the plumbing.  Ideas?
> 
> Actually solving this would solve the ambiguity problem by allowing
> us to require special syntax for referencing targets from tid and tcd.
> 
> This may also address Alex's concern over in
> 
>  
http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/5904/focus=5945
> 
> On 01/28/2013 01:05 PM, Alexander Neundorf wrote:
>> Is it maybe a bit inconsistent that
>> - to setup linking, I can use tll() with targets and with paths
>> - to setup include dirs, I can use tll() with targets, or tid() with
>> targets and directories, or id() with directories
>>
>> Should include_directories() maybe also be taught to recognize targets ?
>>
>> I mean, it kind of makes sense that tll() does not (will not) handle
>> directories for setting up include dirs, but I'm still not sure I like
>> that tll() will handle linking completely and partly setting up the
>> includes.

I'm not sure what you mean by 'partly'.

> What if only tll continues to allow raw target names and tid and tcd
> assume non-target without using a generator expression?  In the common
> use case tll will now do linking/includes/defines for targets anyway so
> we will need tid and tcd only for real raw dirs/defs.

Yes, I think that's right.

As a somewhat real-world use of this stuff, see this patch to the kde-
frameworks branch:

 http://www.steveire.com/0001-wip-remove-redundant-include_directories-
calls.patch

(There's some X11 and other dependency stuff mixed in, so ignore those 
parts)

So, the conclusion is that we can remove target handling from 
target_compile_definitions and target_include_directories entirely? Should 
we wait for the conclusion of the upstream/downstream/policy issue in the 
other thread?

Thanks,

Steve.





More information about the cmake-developers mailing list