Am Freitag, 3. Oktober 2014, 08:41:47 schrieb Brad King:
> On 10/03/2014 03:35 AM, Rolf Eike Beer wrote:
> > find_package(foo 2.0 EXACT) means EXACT, i.e. only "2.0" is allowed. In
> > most cases this behavior is not the one that one would expect or need.
> > Most people would instead allow any 2.0.x version to match.
> 
> Yes.  The "EXACT" should refer to exactly matching whatever components are
> given by the caller.  Following components should still be free to vary.
> If the caller wants them to be exact too then they should be specified.
> 
> > This sort of selection is currently impossible without additional effort
> > in every Find*.cmake that is used.
> 
> Is that because of FPHSA's implementation?

I think that is the main reason.

> > Since we can't change this because of the usual backward compatibility
> > concerns I think we should introduce a new version mode, e.g.
> > EXACT_OR_MINOR (or any other naming you find more appropiate).
> > 
> > In case this is aggreed on I would try to create a patch ASAP to be able
> > to
> > still land it in 3.1.
> 
> I'd rather not introduce a new API in an important command like find_package
> immediately before a release.  However, the documentation of find_package
> has always said that it is up to the Find module (or package version file
> in Config mode) for each package to decide whether a version matches.
> 
> I think FPHSA could be changed to implement the expected behavior for
> EXACT discussed above.  The current implementation effectively adds
> unlimited implicit ".0.0.0" to the caller's components as part of
> if(VERSION_EQUAL).  Instead FPHSA could truncate the available version
> to match the number of components provided by the caller's version
> request before using if(VERSION_EQUAL).

If it is acceptable to change FPHSA in that way I can just go for it.

Eike

Attachment: signature.asc
Description: This is a digitally signed message part.

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to