On 11/07/2012 07:33 AM, Stephen Kelly wrote:
>> I think 2.8.11 will have to generate export files that provide both
>> old and new interfaces.
> 
> This is currently the case in my branch.

Good.

> The generator expression content is 
> created in FooTargets.cmake and the old-style information is still generated 
> in FooTargets-<Config>.cmake

One reason we split out the FooTargets-<Config>.cmake files is so that
multiple separate build trees could each build and install a different
configuration over top the same install prefix.  If the libraries are
named on a per-config basis then this can work.  The main FooTargets.cmake
just lists the targets to be defined, and the per-config files provide
the per-config information for whatever set of configurations happens
to be installed.  This capability must be preserved.  If that just means
generator expressions that cover all possible configurations are put
in the top FooTargets.cmake file, then great.

> So, I think using a union solves the problem of consuming and production, 

An upstream written for CMake 2.8.10 that uses tll and sets old link
interfaces is not aware of the 2.8.11 behavior.  When built with 2.8.11
the tll will populate the new interfaces.  The old interfaces will still
be populated too.  The union of these in a 2.8.11-built consumer will then
duplicate the link information where it was not previously.  This is a
change in behavior for projects that have not been modified at all.  This
is not acceptable, and we don't need to bring include_directories into
the picture to cause it.  Let's resolve this first and then worry about
the rest.

-Brad
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to