Ответ 1
Как упоминалось в документации команды set, каждый каталог, добавленный с помощью add_subdirectory
, или каждая функция, объявленная с помощью function
, создает новую область.
Новая дочерняя область наследует все определения переменных от своей родительской области. Переменные в новой дочерней области с помощью команды set
будут видны только в дочерней области, если не используется опция PARENT_SCOPE
.
Чтобы сделать назначение SOURCEFILES
видимым в корневой папке вашего проекта, попробуйте:
set (SOURCEFILES main.cpp foo.cpp PARENT_SCOPE)