I tried to use
cmake_parse_arguments to parse some options given to a
function command. One of those options gets as value a string which contains a single opening square bracket.
As a result all other options/values following become part of that value up until either a closing square bracket is encountered or till the end of the arguments to
By digging into the parsing code I realized that function
Source/cmStringAlgorithms.cxx) is used internally to parse the given arguments. That function has some special handling for semicolons, in particular if occurring after opening square brackets.
That would explain the observed behavior. However, I get the impression that is not what was originally intended.
Why such a special handling? If this code is looking for bracket arguments then it is doing it wrong. (It ignores the optional
= and second
Can anyone of the developers shed some light on this?