CMake: różnica między $ {} a „$ {}”

Jaka jest różnica w cmake między czymś takim jak:

set(any_new_var ${old_var})

i

set(any_new_var "${old_var}")

Jakieś ważne różnice? Kiedy mam użyć jednego lub drugiego formularza?

Na przykład staram się wykonać następny mini test

# test.cmake

# Variable 'a' isn't defined.
set(hola "${a}")

# message(${hola})
message("${hola}")

Wynik tego mini-testu (cmake -P test.cmake) jest pustą linią (ponieważ „a” nie jest zdefiniowane). Jeśli odkomentuję pierwszą wiadomość, cmake zgłosi błąd wiadomości:

CMake Error at prueba.cmake:6 (message):
  message called with incorrect number of arguments

Dlaczego w drugim przypadku nie rzuca i nie błąd, ale pusta linia?

questionAnswers(1)

yourAnswerToTheQuestion