7 cmake_parse_arguments(_vtk_third_party_extract
10 "TAGS;VERSION_FROM_TAG"
13 if (_vtk_third_party_extract_UNPARSED_ARGUMENTS)
15 "Unparsed arguments for `_vtk_third_party_extract`: "
16 "${_vtk_third_party_extract_UNPARSED_ARGUMENTS}")
19 if (NOT _vtk_third_party_extract_FILE)
21 "The `FILE` argument is required.")
24 file(STRINGS
"${_vtk_third_party_extract_FILE}"
25 _vtk_third_party_extract_lines
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}"
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)
41 if (NOT DEFINED
"_vtk_third_party_extract_key_${_vtk_third_party_extract_var}")
43 "The key `${_vtk_third_party_extract_var}` is not present in "
44 "`${_vtk_third_party_extract_FILE}")
46 set(
"${_vtk_third_party_extract_arg}"
47 "${_vtk_third_party_extract_key_${_vtk_third_party_extract_var}}"
49 set(_vtk_third_party_extract_key 1)
53 if (NOT _vtk_third_party_extract_key)
55 "`TAGS` must be given a set of tag/variable pairs.")
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")
62 "`VERSION_FROM_TAG` requires three arguments")
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)
69 if (NOT DEFINED _vtk_third_party_extract_key_${_vtk_third_party_extract_var})
71 "`VERSION_FROM_TAG` tag was not found")
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}"
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}}`) "