cmake: Fix cmocka >= 1.1.6 find_package() in CONFIG mode
[uid_wrapper.git] / uid_wrapper-config-version.cmake.in
1 set(PACKAGE_VERSION @PROJECT_VERSION@)
2
3 if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
4   set(PACKAGE_VERSION_COMPATIBLE FALSE)
5 else()
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}")
10     endif()
11   else()
12     set(CVF_VERSION_MAJOR ${PACKAGE_VERSION})
13   endif()
14
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)
26     else()
27       set(PACKAGE_VERSION_COMPATIBLE FALSE)
28     endif()
29   else()
30     if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
31       set(PACKAGE_VERSION_COMPATIBLE TRUE)
32     else()
33       set(PACKAGE_VERSION_COMPATIBLE FALSE)
34     endif()
35
36     if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
37       set(PACKAGE_VERSION_EXACT TRUE)
38     endif()
39   endif()
40 endif()