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? > 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). -Brad -- 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