Хотя макросы определяются и вызываются так же, как и функции, между ними есть некоторые различия, например, в SCOPE и при его выполнении.
ОБЪЕМ:
- Макрос: имеет глобальную область действия.
- Функция: имеет локальную область видимости, если вы не укажете.
ИСПОЛНЕНИЕ: работает как C ++ или C
В заключение добавьте флаг PARENT_SCOPE в команду set
набор (PROTO_FILES $ {PROTO_FILES} $ {имя_файла} PARENT_SCOPE)