Control: forwarded -1 https://reviews.llvm.org/rGd2612ef1c411aba65d7d6e4889261ecec2de52ae
LLVM_DEFINITIONS is a string and not a list A user may be tempted to just do: target_compile_definitions(foo PRIVATE ${LLVM_DEFINITIONS}) which would fails. The ${LLVM_DEFINITIONS} expands to a single argument since the value of the variable is not ;-separated. The result is that CMake thinks user is trying to specify a single definition whose name is the entire string value minus a leading -D.