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