On 2014-01-10 15:15, Alexander Neundorf wrote:
On Friday 10 January 2014, Matthew Woehlke wrote:
Related: Do these affect the version properties of libraries? (Because
OTOH if it does, I can imagine wanting to say VERSION once at the root
and have it inherit downwards unless overridden. Maybe though that's a
reason for it to not do so.)

I thought about that too.
Even without it, with the patch you now already have a standard form:

set_target_properties(.... PROPERTIES VERSIOn ${PROJECT_VERSION} )

Automatically doesn't really work, or at least it would have to be switched
on:
set(CMAKE_USE_PROJECT_VERSION_FOR_LIBRARIES TRUE)
and then that property would automatically use ${PROJECT_VERSION}.

The problem with that is that it doesn't work if I use an unversioned project somewhere, when what I want is to use the version of the project from a parent directory. Unfortunately I can't think of a way to make that work properly that doesn't risk breaking things if Project A doesn't use it, but is built as a child of Project B which does (i.e. you don't want A to use B's version).

Hence my disinclination to try to address that just now :-).

(The "least evil" option I can come up with offhand is to accept 'INHERIT' as the version and then always use the current-project version by default. At least that way, e.g. in the above example A would continue to get no version, so you haven't broken BC. You'd still have to explicitly set the project version on every project to use automatic versioning, even if it is 'INHERIT', hence why it's not a perfect solution.)

--
Matthew

--

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

Reply via email to