[cmake-developers] Roadmap to CMake 3.0
Matthew Woehlke
matthew.woehlke at kitware.com
Mon Oct 21 14:38:42 EDT 2013
On 2013-10-21 13:36, Alexander Neundorf wrote:
> On Friday 11 October 2013, Brad King wrote:
>> Hi Folks,
>>
>> I think the time has come for a major version number bump to go with
>> some major updates. I propose to skip preparing 2.8.13 in 'master'
>> and go straight to 3.0.0.
>>
>> Potential changes motivating a major version number bump include:
>>
>> * Drop implementation of compatibility modes with CMake versions
>> prior to 2.4.0 which is now over 7 years old.
>
> Would this also be a chance to change the if( STREQUAL ) string vs. variable
> lookup rules ?
That would be *awesome* :-D.
Relatedly, though I imagine it could be done with a policy at any time,
it would be nice to explicitly disallow variable names that are not
valid C++ identifiers (i.e. that don't match "[[:alnum:]_]+"). This at
least would make it reliable to do like:
if ("%${var}" STREQUAL "%value")
...with even further reduced danger that "%${var}" is a variable name.
> Or introduce the whole set of comparison operators ("==", "<", etc.), which
> would then never do variable lookup, and "deprecate" the current ones ?
That's come up before and been rejected.
IMHO the "correct" solution is to not do implicit expansion on quoted
arguments. This might still need a policy, but it's much less likely
anything in quotes is expected to be a variable name. However as I
understand it, actually doing that is hard.
Also relatedly, it would be nice to actually handle lists as a separate
data type (e.g. so list expansion doesn't have so many weird corner
cases, lists can be nested, etc.). But again, hard :-(.
--
Matthew
More information about the cmake-developers
mailing list