Wie setze ich die globale Variable in einer Funktion für cmake?

Ich schreibe eine CMakeLists.txt, um Dateien zu generieren und die generierten Dateien zu kompilieren. Ich erstelle eine Funktion, um einer globalen Listenvariablen einige Dateipfadzeichenfolgen hinzuzufügen.

Meine CMakeLists.txt:

<code>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}\"")
</code>

Die cmake ausgabe:

<code>At last, the source_list is:"nothing"
</code>

Jemand schlug vor, Makro anstelle von Funktion zu verwenden, aber ich muss lokale Variable verwenden, also muss ich die Funktion anstelle von Makro verwenden.

Wie kann ich die globale Variable source_list im Funktionstest () korrekt setzen? Kannst du es nicht einfach und normal machen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage