The simplicity of basic CMake variables belies the complexity of the full variable syntax. This page documents the various variable cases, with examples, and points out the pitfalls to avoid.
Variable names are case-sensitive. Their values are of type string. The value of a variable is referenced via:
${variable_name}
and is evaluated inside a quoted argument
"${variable_name}/directory"