On 10/03/2014 12:47 PM, Rolf Eike Beer wrote:
> + # give an exact match if the first ${NAME}_FIND_VERSION_COUNT
> components of the version string match
> + # this constructs the equivalent of
> "(([^.]\\.){${${_NAME}_FIND_VERSION_COUNT}})"
> + unset(_VERSION_REGEX)
> + # foreach(RANGE) doesn't like it if stop is greater start
> + if (${${_NAME}_FIND_VERSION_COUNT} GREATER 1)
> + foreach (_NUM RANGE 2 ${${_NAME}_FIND_VERSION_COUNT})
> + set(_VERSION_REGEX "${_VERSION_REGEX}[^.]*\\.")
> + endforeach ()
> + endif ()
Since _FIND_VERSION_COUNT is always [0-4], I think a hand-coded lookup
table may be simpler and faster.
> + string(REGEX REPLACE "^(${_VERSION_REGEX}[^.]*)\\..*" "\\1"
> _VERSION_HEAD "${VERSION}")
Perhaps use something like
if(VERSION MATCHES "^(${_VERSION_REGEX}[^.]*)\\..*")
set(_VERSION_HEAD "${CMAKE_MATCH_1}")
else()
message(... bad VERSION in call to fphsa...)
endif()
in case something fails to match for some reason.
Thanks,
-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