catalyst-version.cmake
Go to the documentation of this file.
1 # This is a basic version file for the Config-mode of find_package().
2 # It is used by write_basic_package_version_file() as input file for configure_file()
3 # to create a version-file which can be installed along a config.cmake file.
4 #
5 # The created file sets PACKAGE_VERSION_EXACT if the current version string and
6 # the requested version string are exactly the same and it sets
7 # PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
8 # but only if the requested major version is the same as the current one.
9 # The variable CVF_VERSION must be set before calling configure_file().
10 
11 
12 set(PACKAGE_VERSION "2.0")
13 
14 if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
15  set(PACKAGE_VERSION_COMPATIBLE FALSE)
16 else()
17 
18  if("2.0" MATCHES "^([0-9]+)\\.")
19  set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
20  else()
21  set(CVF_VERSION_MAJOR "2.0")
22  endif()
23 
24  if(PACKAGE_FIND_VERSION_RANGE)
25  # both endpoints of the range must have the expected major version
26  math (EXPR CVF_VERSION_MAJOR_NEXT "${CVF_VERSION_MAJOR} + 1")
27  if (NOT PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
28  OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX_MAJOR STREQUAL CVF_VERSION_MAJOR)
29  OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX VERSION_LESS_EQUAL CVF_VERSION_MAJOR_NEXT)))
30  set(PACKAGE_VERSION_COMPATIBLE FALSE)
31  elseif(PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
32  AND ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS_EQUAL PACKAGE_FIND_VERSION_MAX)
33  OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MAX)))
34  set(PACKAGE_VERSION_COMPATIBLE TRUE)
35  else()
36  set(PACKAGE_VERSION_COMPATIBLE FALSE)
37  endif()
38  else()
39  if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
40  set(PACKAGE_VERSION_COMPATIBLE TRUE)
41  else()
42  set(PACKAGE_VERSION_COMPATIBLE FALSE)
43  endif()
44 
45  if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
46  set(PACKAGE_VERSION_EXACT TRUE)
47  endif()
48  endif()
49 endif()
50 
51 
52 # if the installed project requested no architecture check, don't perform the check
53 if("FALSE")
54  return()
55 endif()
56 
57 # if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
58 if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "")
59  return()
60 endif()
61 
62 # check that the installed version has the same 32/64bit-ness as the one which is currently searching:
63 if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8")
64  math(EXPR installedBits "8 * 8")
65  set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
66  set(PACKAGE_VERSION_UNSUITABLE TRUE)
67 endif()
#define PACKAGE_VERSION
Definition: expat_config.h:82