cmake: redesign command-line argument parsing
Refactoring cmake command line parsing
"-S" -> valid
"-S/path/to/source" -> valid
"-S /path/to/source" -> valid
"-S=/path/to/source" -> now valid
"-D" -> invalid
"-DStr" -> valid
"-D Str" -> valid
"-D=Str" -> now valid
"--log-level=" -> invalid
"--log-level" -> invalid
"--log-level=2" -> valid
"--log-level 2" -> now valid
Fixes: #21352 (closed)
Edited by Brad King