On 06/04/2013 11:44 AM, Stephen Kelly wrote:
> I've pushed my current work to my clone in the INTERFACE_LINK_LIBRARIES-prop 
> topic. It's not yet complete, but I think it has almost all elements of the 
> solution.

+    "CMake 2.8.11 consumed the 'link interface' of a target from properties "

s/consumed/constructed/

+      if(te->Target->GetPolicyStatusCMP0022() != cmPolicies::NEW)

This should be "not OLD and not WARN" because in the future it
may be REQUIRE_ALWAYS or REQUIRE_IF_USED which are new behavior.

The export() command will also need the EXPORT_LINK_INTERFACE_LIBRARIES
option.

In the tll() signature policy I think LINK_PUBLIC/LINK_PRIVATE should
be an alias for PUBLIC/PRIVATE.  The "old" signatures are only the
one without any keywords plus the one with LINK_INTERFACE_LIBRARIES.
The "new" signatures are the (LINK_)?(PUBLIC|PRIVATE|INTERFACE) mode.
That is why we need a policy to make the old and new sigs exclusive.

> An issue with static libraries arises when exporting, as we only export the 
> INTERFACE_LINK_LIBRARIES, but we want to communicate both link dependencies 
> and usage dependencies through it. I left a comment in one of the commits 
> proposing a genex-based solution similar to the INSTALL_INTERFACE genex.

I see that here:

+      // Perhaps we should populate it with a generator expression similar to
+      // INSTALL_INTERFACE and BUILD_INTERFACE expressions? As the order is
+      // relevant, the entries which are for usage requirements only can
+      // be wrapped in $<USAGE_ONLY:tgt>

Instead we should wrap the "private" link-only dependencies in an
expression because they are the ones that do not belong in the
interface.  Perhaps use $<LINK_PRIVATE:...> or $<LINK_ONLY:...>
where ... can even be a list to avoid verbosity for adjacent
link-only entries.

-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