[cmake-developers] Preparing for CMake 3.0.0-rc1

Stephen Kelly steveire at gmail.com
Mon Jan 27 16:58:49 EST 2014


Brad King wrote:

> * AddVersionToProjectCommand at commit 73019d66

Commit 44013262 seems to set the version variables to "0", instead of 
leaving them unset, if not defined. If this is deliberate and considered, 
the reason for it is not in the commit message. I think that particular 
logic should be reconsidered anyway.

The test should be extended to cover a case like:

 project(Xyz VERSION "7.8.9")

 project(Abc "3.2.1")

and I guess

 project(Xyz VERSION "7.8.9")

 set(CMAKE_PROJECT_VERSION_SET_BY_PROJECT_COMMAND FALSE)

 project(Abc "3.2.1")


Though I still don't like the behavior in the topic with project() commands 
without a specified VERSION and the 
CMAKE_PROJECT_VERSION_SET_BY_PROJECT_COMMAND variable etc. I don't see why 
all the complexity is needed. 

>From what I understand, the reason it was added is related to using 
add_subdirectory to add a self-contained/standalone project to host 
buildsystem. These VERSION variables are not alone in 'conflict 
possibilities' in that case. The 'sub-project' already may not use 
CMAKE_SOURCE_DIR and there are other constraints which we don't have 
listed/documented anywhere. There are existing reasons why ExternalProject 
should be used instead of add_subdirectory in such cases. These VERSION 
variables can just be another reason. The 'host' buildsystem would itself 
have to set the VERSION, so it can ensure that that actually works with its 
sub-directory projects.

There should not be special behavior with these VERSION variables. Or if 
there really should be, the reason should be in the commit message.

Thanks,

Steve.





More information about the cmake-developers mailing list