VTK  9.6.20260212
vtkModuleThirdParty.cmake
Go to the documentation of this file.
1cmake_policy(PUSH)
2if (POLICY CMP0159)
3 cmake_policy(SET CMP0159 NEW)
4endif ()
5
7 cmake_parse_arguments(_vtk_third_party_extract
8 ""
9 "FILE"
10 "TAGS;VERSION_FROM_TAG"
11 ${ARGN})
12
13 if (_vtk_third_party_extract_UNPARSED_ARGUMENTS)
14 message(FATAL_ERROR
15 "Unparsed arguments for `_vtk_third_party_extract`: "
16 "${_vtk_third_party_extract_UNPARSED_ARGUMENTS}")
17 endif ()
18
19 if (NOT _vtk_third_party_extract_FILE)
20 message(FATAL_ERROR
21 "The `FILE` argument is required.")
22 endif ()
23
24 file(STRINGS "${_vtk_third_party_extract_FILE}"
25 _vtk_third_party_extract_lines
26 REGEX "readonly ")
27 foreach (_vtk_third_party_extract_line IN LISTS _vtk_third_party_extract_lines)
28 if (_vtk_third_party_extract_line MATCHES "^readonly ([a-z]+)=\"([^\"]+)\"$")
29 set("_vtk_third_party_extract_key_${CMAKE_MATCH_1}"
30 "${CMAKE_MATCH_2}")
31 endif ()
32 endforeach ()
33
34 set(_vtk_third_party_extract_var "")
35 set(_vtk_third_party_extract_key 1)
36 foreach (_vtk_third_party_extract_arg IN LISTS _vtk_third_party_extract_TAGS)
37 if (_vtk_third_party_extract_key)
38 set(_vtk_third_party_extract_var "${_vtk_third_party_extract_arg}")
39 set(_vtk_third_party_extract_key 0)
40 else ()
41 if (NOT DEFINED "_vtk_third_party_extract_key_${_vtk_third_party_extract_var}")
42 message(FATAL_ERROR
43 "The key `${_vtk_third_party_extract_var}` is not present in "
44 "`${_vtk_third_party_extract_FILE}")
45 endif ()
46 set("${_vtk_third_party_extract_arg}"
47 "${_vtk_third_party_extract_key_${_vtk_third_party_extract_var}}"
48 PARENT_SCOPE)
49 set(_vtk_third_party_extract_key 1)
50 endif ()
51 endforeach ()
52
53 if (NOT _vtk_third_party_extract_key)
54 message(FATAL_ERROR
55 "`TAGS` must be given a set of tag/variable pairs.")
56 endif ()
57
58 if (DEFINED _vtk_third_party_extract_VERSION_FROM_TAG)
59 list(LENGTH _vtk_third_party_extract_VERSION_FROM_TAG _vtk_third_party_extract_vft_length)
60 if (NOT _vtk_third_party_extract_vft_length EQUAL "3")
61 message(FATAL_ERROR
62 "`VERSION_FROM_TAG` requires three arguments")
63 endif ()
64
65 list(GET _vtk_third_party_extract_VERSION_FROM_TAG 0 _vtk_third_party_extract_tag_key)
66 list(GET _vtk_third_party_extract_VERSION_FROM_TAG 1 _vtk_third_party_extract_tag_version)
67 list(GET _vtk_third_party_extract_VERSION_FROM_TAG 2 _vtk_third_party_extract_tag_regex)
68
69 if (NOT DEFINED _vtk_third_party_extract_key_${_vtk_third_party_extract_var})
70 message(FATAL_ERROR
71 "`VERSION_FROM_TAG` tag was not found")
72 endif ()
73 if (_vtk_third_party_extract_key_${_vtk_third_party_extract_var} MATCHES "${_vtk_third_party_extract_tag_regex}")
74 set("${_vtk_third_party_extract_tag_version}"
75 "${CMAKE_MATCH_1}"
76 PARENT_SCOPE)
77 else ()
78 message(FATAL_ERROR
79 "`VERSION_FROM_TAG` regex (`${_vtk_third_party_extract_tag_regex}`) "
80 "did not match the tag "
81 "(`${_vtk_third_party_extract_key_${_vtk_third_party_extract_var}}`) "
82 "was not found")
83 endif ()
84 endif ()
85endfunction ()
86
87cmake_policy(POP)
if(abs(tt - 1.0)< eps)
Definition PyrC1Basis.h:1
function vtk_third_party_extract()