1 set(PACKAGE_VERSION @PROJECT_VERSION@)
3 if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
4 set(PACKAGE_VERSION_COMPATIBLE FALSE)
6 if(${PACKAGE_VERSION} MATCHES "^([0-9]+)\\.")
7 set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
8 if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
9 string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
12 set(CVF_VERSION_MAJOR ${PACKAGE_VERSION})
15 if(PACKAGE_FIND_VERSION_RANGE)
16 # both endpoints of the range must have the expected major version
17 math (EXPR CVF_VERSION_MAJOR_NEXT "${CVF_VERSION_MAJOR} + 1")
18 if (NOT PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
19 OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX_MAJOR STREQUAL CVF_VERSION_MAJOR)
20 OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX VERSION_LESS_EQUAL CVF_VERSION_MAJOR_NEXT)))
21 set(PACKAGE_VERSION_COMPATIBLE FALSE)
22 elseif(PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
23 AND ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS_EQUAL PACKAGE_FIND_VERSION_MAX)
24 OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MAX)))
25 set(PACKAGE_VERSION_COMPATIBLE TRUE)
27 set(PACKAGE_VERSION_COMPATIBLE FALSE)
30 if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
31 set(PACKAGE_VERSION_COMPATIBLE TRUE)
33 set(PACKAGE_VERSION_COMPATIBLE FALSE)
36 if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
37 set(PACKAGE_VERSION_EXACT TRUE)