Fix the cmake Sphinx find script.
The cmake sphinx find script version parsing assumes a format of 1.2.3, but sphinx version can be 1.2b3 as well, so parse those correctly as well.
This commit is contained in:
parent
f675514815
commit
42d398243d
@ -257,12 +257,16 @@ if (Sphinx-build_EXECUTABLE)
|
|||||||
ERROR_VARIABLE _Sphinx_VERSION
|
ERROR_VARIABLE _Sphinx_VERSION
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
if (_Sphinx_VERSION MATCHES "Sphinx v([0-9]+\\.[0-9]+\\.[0-9]+)")
|
|
||||||
|
# The sphinx version can also contain a "b" instead of the last dot.
|
||||||
|
# For example "Sphinx v1.2b1" so we cannot just split on "."
|
||||||
|
if (_Sphinx_VERSION MATCHES "Sphinx v([0-9]+\\.[0-9]+(\\.|b)[0-9]+)")
|
||||||
set (Sphinx_VERSION_STRING "${CMAKE_MATCH_1}")
|
set (Sphinx_VERSION_STRING "${CMAKE_MATCH_1}")
|
||||||
string (REPLACE "." ";" _Sphinx_VERSION "${Sphinx_VERSION_STRING}")
|
string(REGEX REPLACE "([0-9]+)\\.[0-9]+(\\.|b)[0-9]+" "\\1" Sphinx_VERSION_MAJOR ${Sphinx_VERSION_STRING})
|
||||||
list(GET _Sphinx_VERSION 0 Sphinx_VERSION_MAJOR)
|
string(REGEX REPLACE "[0-9]+\\.([0-9]+)(\\.|b)[0-9]+" "\\1" Sphinx_VERSION_MINOR ${Sphinx_VERSION_STRING})
|
||||||
list(GET _Sphinx_VERSION 1 Sphinx_VERSION_MINOR)
|
string(REGEX REPLACE "[0-9]+\\.[0-9]+(\\.|b)([0-9]+)" "\\1" Sphinx_VERSION_PATCH ${Sphinx_VERSION_STRING})
|
||||||
list(GET _Sphinx_VERSION 2 Sphinx_VERSION_PATCH)
|
|
||||||
|
# v1.2.0 -> v1.2
|
||||||
if (Sphinx_VERSION_PATCH EQUAL 0)
|
if (Sphinx_VERSION_PATCH EQUAL 0)
|
||||||
string (REGEX REPLACE "\\.0$" "" Sphinx_VERSION_STRING "${Sphinx_VERSION_STRING}")
|
string (REGEX REPLACE "\\.0$" "" Sphinx_VERSION_STRING "${Sphinx_VERSION_STRING}")
|
||||||
endif ()
|
endif ()
|
||||||
|
Loading…
Reference in New Issue
Block a user