Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Tests/CMakeOnly/MajorVersionSelection/CMakeLists.txt
3153 views
1
cmake_minimum_required(VERSION 3.10)
2
3
if (NOT MAJOR_TEST_MODULE OR NOT MAJOR_TEST_VERSION)
4
message(FATAL_ERROR "test selection variables not set up")
5
endif ()
6
7
if (MAJOR_TEST_NO_LANGUAGES)
8
project(major_detect_${MAJOR_TEST_MODULE}_${MAJOR_TEST_VERSION} NONE)
9
else ()
10
project(major_detect_${MAJOR_TEST_MODULE}_${MAJOR_TEST_VERSION})
11
endif ()
12
13
find_package(${MAJOR_TEST_MODULE} ${MAJOR_TEST_VERSION})
14
15
if (MAJOR_TEST_VERSION_VAR)
16
set(VERSION_VAR "${MAJOR_TEST_VERSION_VAR}")
17
else ()
18
set(VERSION_VAR "${MAJOR_TEST_MODULE}_VERSION_STRING")
19
endif ()
20
21
string(TOUPPER "${MAJOR_TEST_MODULE}" MODULE_UPPER)
22
23
if ( ( ${MAJOR_TEST_MODULE}_FOUND OR ${MODULE_UPPER}_FOUND ) AND ${VERSION_VAR})
24
message(STATUS "${VERSION_VAR} is '${${VERSION_VAR}}'")
25
if (${VERSION_VAR} VERSION_LESS MAJOR_TEST_VERSION)
26
message(SEND_ERROR "Found version ${${VERSION_VAR}} is less than requested major version ${MAJOR_TEST_VERSION}")
27
endif ()
28
math(EXPR V_PLUS_ONE "${MAJOR_TEST_VERSION} + 1")
29
if (${VERSION_VAR} VERSION_GREATER V_PLUS_ONE)
30
message(SEND_ERROR "Found version ${${VERSION_VAR}} is greater than requested major version ${MAJOR_TEST_VERSION}")
31
endif ()
32
endif ()
33
34
if ( ( ${MAJOR_TEST_MODULE}_FOUND OR ${MODULE_UPPER}_FOUND ) AND ${MAJOR_TEST_MODULE}_VERSION_MAJOR)
35
message(STATUS "${MAJOR_TEST_MODULE}_VERSION_MAJOR is '${${MAJOR_TEST_MODULE}_VERSION_MAJOR}'")
36
if (NOT ${MAJOR_TEST_VERSION} EQUAL ${MAJOR_TEST_MODULE}_VERSION_MAJOR)
37
message(SEND_ERROR "We requested major version ${MAJOR_TEST_VERSION} but ${MAJOR_TEST_MODULE} set ${MAJOR_TEST_MODULE}_VERSION_MAJOR to ${${MAJOR_TEST_MODULE}_VERSION_MAJOR}")
38
endif ()
39
endif ()
40
41
if ( ( ${MAJOR_TEST_MODULE}_FOUND OR ${MODULE_UPPER}_FOUND ) AND ${MODULE_UPPER}_VERSION_MAJOR)
42
message(STATUS "${MODULE_UPPER}_VERSION_MAJOR is '${${MODULE_UPPER}_VERSION_MAJOR}'")
43
if (NOT ${MAJOR_TEST_VERSION} EQUAL ${MODULE_UPPER}_VERSION_MAJOR)
44
message(SEND_ERROR "We requested major version ${MAJOR_TEST_VERSION} but ${MAJOR_TEST_MODULE} set ${MODULE_UPPER}_VERSION_MAJOR to ${${MODULE_UPPER}_VERSION_MAJOR}")
45
endif ()
46
endif ()
47
48