On 2015-01-09 14:18, Rolf Eike Beer wrote: > Matthew Woehlke wrote: >> On 2014-10-03 03:35, 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. This sort of >>> selection is currently impossible without additional effort in every >>> Find*.cmake that is used. >> >> This is probably a bit late, but did anyone think of using "MATCHES" to >> say "all provided components match exactly and the rest can be whatever"? > > I bet everybody will get it wrong. > > Ok, this is "version 2.1 and any of it's patch versions", if _I_ got it right: > > if (VER MATCHES "^2\\.1(\\..*|[^0-9].*)?$") > > So this should match "2.1", "2.1a", "2.1.1", but not "2.10". What combination > of stuff did I miss?
...except I was talking about a new mode for find_package (*not* necessarily a regex). IOW: find_package(Foo 2.1 MATCHES) ...finds Foo 2.1, 2.1.0, 2.1.beta, etc., but not 2.0, 2.0.1, 2.2, etc. (In if(), if available at all (which maybe it needs to be), it would be spelled VERSION_MATCHES.) Anyway, your regex is overcomplicated; I'd think it would be just '^2[.]1([.]|$)'. (I'd be a little hesitant to allow '2.1a' to match '2.1'... is that '2.1 alpha' or 'release "a" after 2.1'? Or the release following '2.19' because someone is using hex version numbers? I'm not entirely sure that *any* of those should "match" 2.1, and certainly at most only one should match.) -- Matthew -- 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