[cmake-developers] An option to set LINK_INTERFACE_LIBRARIES to empty on all shared library targets?

Stephen Kelly steveire at gmail.com
Mon Sep 26 10:47:41 EDT 2011


Brad King wrote:

> On 9/26/2011 7:28 AM, Stephen Kelly wrote:
>> In KDE we set the LINK_INTERFACE_LIBRARIES to empty in a wrapper around
>> add_library.
> [snip]
>> set(CMAKE_SET_LINK_INTERFACE_EMPTY ON)
>>
>> cause the LINK_INTERFACE to be empty for all shared library targets be
>> accepted into CMake?
> 
> Sure.  I think the simplest interface is to define a variable whose value
> is used as the property default for LINK_INTERFACE_LIBRARIES:
> 
>    set(CMAKE_LINK_INTERFACE_LIBRARIES "")
> 
> Look in cmTarget.cxx for the method cmTarget::SetMakefile.  There are a
> bunch of calls to "SetPropertyDefault".  Just add one like
> 
>    this->SetPropertyDefault("LINK_INTERFACE_LIBRARIES", 0);
> 
> This tells CMake to use the value of the variable
> 
>    CMAKE_LINK_INTERFACE_LIBRARIES
> 
> as the default LINK_INTERFACE_LIBRARIES when the target is created.
> The ",0" argument means that there is no default if the variable is
> not set.
> 
> Then add appropriate documentation for the variable in cmDocumentVariables
> and add a sentence to the original property documentation about how the
> default is defined.
> 

Sounds good. Thanks for the pointers (including what is presumably a null 
pointer :)).





More information about the cmake-developers mailing list