The official document of CMake 2.8.12 mówi o macro
Funkcja vs. Makro w CMake
Kiedy jest wywoływana, polecenia zapisane w makro są najpierw zmodyfikowany poprzez zastąpienie parametrów formalnych ($ {arg1}) z argumentami minęły, a następnie wywoływane jako normalne polecenia.
io function
Po wywołaniu, polecenia rejestrowane w funkcji są przede zmodyfikowane przez zastąpienie parametrów formalnych ($ {arg1}) z argumentami test wypadł pozytywnie, a następnie wywoływana w normalne polecenia.
Oczywiście dwa cytaty są prawie takie same, ale mylą mnie. Czy zastępuje parametry na początku podczas wywoływania funkcji, podobnie jak makro?
Istnieje co najmniej jedna ważna, choć dość oczywista różnica między 'function' i' macro': semantyką 'return()': Kiedy jest używana w 'makrze', nie powrócisz z makra, ale z funkcji wywołującej. –
Dokumenty CMake są okropne, gdy próbujesz je zrozumieć. – stanleyli