On Wednesday 29 January 2014, Brad King wrote: > On 1/28/2014 4:20 PM, Alexander Neundorf wrote: > >> (1) Design new behavior in a way that requires a change to the > >> > >> project to activate. > > > > I think my current version fits (1). > > Yes, I meant to add "like Alex's topic currently does". > > > IMO this is not the place for a policy, since the behaviour of the > > existing, unchanged project did not change, it is still working as it > > did before. > > ...except for the case of set(PROJECT_VERSION) *before* a call to > project() without a VERSION. Currently your solution using > CMAKE_PROJECT_VERSION_SET_BY_PROJECT_COMMAND avoids needing the > policy. However, it is not a design that would have been > produced if we were starting from scratch. The purpose of a > policy is to allow us to switch to the clean design while > remaining compatible with existing code. > > > Regarding (2): how should I detect whether PROJECT_VERSION has been set > > manually ? > > Actually I realized we don't have to detect that. What matters > is that project() may clear the variable values when it did not > before. > > I reverted the 'AddVersionToProjectCommand' topic from 'next' > and replaced it with a 'project-version-variables' topic that > adds a policy: > > Help: Format project command and variable documentation > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=00007dcc > > project: Add optional LANGUAGES keyword > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=16d040c9 > > project: Manage VERSION variables > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7e142c5a > > write_basic_package_version_file: use PROJECT_VERSION > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=41d2f2c4 > > The key is that project() only accepts VERSION when the > policy is set to NEW. After release this will be automatic > because one would need cmake_minimum_required() to specify a > high enough version to understand the new project() signature > and that would set the policy to NEW. Once the policy is > set to NEW then we can freely clear variables when project() > is not given a VERSION.
Fine with me, thanks :-) Alex -- 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