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
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