Do I need to quote list value for set(PARENT_SCOPE)?

Do I need to quote that ${l1} value? I tested it and it works as expected without quotes.

function(f1)
    list(APPEND l1 "v1")
    set(l1 ${l1} PARENT_SCOPE)
endfunction()

It’s needed when escaping comes into the game like:

function(f1)
    list(APPEND l1 "v1" "v2")
    list(JOIN l1 "\;" l1)
    set(l1 "${l1}" PARENT_SCOPE)
endfunction()

I don’t fully understand the consequences but everything is described at cmake-language

I also have found a nice sum-up here