On 11/11/2012 01:32 PM, Stephen Kelly wrote: > This means that if the user starts to use non-trivial content in the > INTERFACE_LINK_LIBRARIES content, then old behavior will be chosen (unless > the policy is set).
Right, so applications will not change their behavior until they have been updated to be aware of it. This is a feature of policies. > That might be fine, in that the explicit act needed by the person > implementing the buildsystem for foo to change that is: > > set_minimum_required(VERSION 2.8.11) The proposed policy is set in the consumer, not the producer. They will get a warning that describes the behavior change if the old and new interfaces produce different results. They can choose the new behavior when available with if(POLICY CMPxxxx) cmake_policy(SET CMPxxxx NEW) # remove when min req is 2.8.11 endif() without otherwise requiring 2.8.11. >> However, how do we >> eventually stop adding the old interfaces to the export files? > > It might depend on what the contents of the properties are. [snip] > In case non-trivial generator expressions are used, maybe we would need to > add: > > if (CMAKE_VERSION VERSION_LESS 2.8.11) > message(FATAL_ERROR "This file requires CMake 2.8.11 or later") > endif() > > when exporting the targets. Something like that may work. Thanks, -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
