[cmake-developers] RFC: add version to project() call

Brad King brad.king at kitware.com
Tue Jan 14 10:37:10 EST 2014


On 01/13/2014 01:38 PM, Alexander Neundorf wrote:
> does this require a policy now ?
> 
> Somebody could set Foo_VERSION_MAJOR in the toplevel subdir, and have a 
> project(Foo)
> call in a subdir, which would now unset Foo_VERSION_MAJOR.
> The same for PROJECT_VERSION_MAJOR, but this is maybe less likely.

I don't think project(Foo) needs to affect Foo_VERSION_* when no
VERSION argument is given (but should handle empty VERSION "").
It should still handle PROJECT_VERSION_* to ensure consistency
with PROJECT_NAME.  That may need a policy, but it will be tricky
because we need to know if the value came from a previous project()
call or a user set() in order to know when to trigger compatibility.

Perhaps "project(... VERSION ...)" can set some cmMakefile variable
internally that says the project knows about versions so it is okay
project(Foo) calls to unset them in subdirs.  Then we won't need any
policy because there is no change in behavior without modifying the
project to add at least one VERSION to a project() command.

-Brad



More information about the cmake-developers mailing list