Comment définir la variable globale dans une fonction pour cmake?

Je suis en train d'écrire un CMakeLists.txt pour générer des fichiers et de compiler les fichiers générés. J'ai créer une fonction pour ajouter un peu de chemin du fichier de chaînes de caractères à une variable de liste globale.

Mon CMakeLists.txt:

set(source_list "nothing")
function(test file_path)
    list(APPEND source_list ${file_path})
endfunction(test)
test(abc.txt)
test(def.txt)
message("At last, the source_list is:\"${source_list}\"")

Le cmake sortie:

At last, the source_list is:"nothing"

Quelqu'un a suggéré qu'à l'utilisation de la macro au lieu de la fonction, mais j'ai besoin d'utiliser une variable locale, donc j'ai besoin d'utiliser la fonction au lieu de macro.

Comment puis-je régler correctement la variable globale source_list dans la fonction test()? Ne peut pas cmake le faire dans un simple et normale?

OriginalL'auteur sean | 2012-04-05