[cmake-developers] Severe behavioural change regressions in release branch

Ben Boeckel ben.boeckel at kitware.com
Fri Oct 24 10:54:17 EDT 2014


On Fri, Oct 24, 2014 at 15:24:57 +0100, Alex Merry wrote:
> On Friday 24 October 2014 10:20:42 Brad King wrote:
> > On 10/24/2014 10:02 AM, Brad King wrote:
> > > commit 5abfde6cb8a1ae0b2825797eab6c2e9842eb7c49
> > > Author: Ben Boeckel <ben.boeckel at kitware.com>
> > > Date:   Wed Mar 12 14:01:45 2014 -0400
> > > 
> > >     cmDefinitions: Don't store parent lookups
> > >     
> > >     When looking up scopes, it is faster to not store the lookup locally
> > >     to
> > >     keep the maps smaller and avoid extra allocations and rebalancing.

So the problem was that when redoing the "pull" logic for PARENT_SCOPE,
it was unconditional when it should be skipped if the variable is
already local.

Pushed to stage as:

    variable-pull-failure

> -------------------------------------------
> cmake_minimum_required(VERSION 3.0)
> project(Minimal NONE)
> 
> function(test_set)
>     set(blah "value2")
>     message(STATUS "before PARENT_SCOPE blah=${blah}")
>     set(blah ${blah} PARENT_SCOPE)
>     message(STATUS "after PARENT_SCOPE blah=${blah}")
> endfunction()
> 
> set(blah value1)
> test_set()
> message(FATAL_ERROR "in parent scope, blah=${blah}")
> ------------------------------------------

Now added as a test in CMake (with minor changes).

Thanks,

--Ben



More information about the cmake-developers mailing list