Основное отличие include от add_subdirectory при организации проекта с помощью CMake заключается в их функциях. 1
include используется для включения других файлов CMake, которые содержат команды этой системы. 1 Обычно такие файлы содержат общие конфигурации или макросы, которые можно применять в нескольких проектах или внутри одного. 1
Add_subdirectory применяется для включения внешних проектов или подпроектов в основной проект CMake. 1 С помощью этой команды CMake автоматически ищет и обрабатывает файл CMakeLists.txt в указанном подкаталоге. 12 Это позволяет подпроекту определять свои цели (библиотеки, исполняемые файлы), зависимости и инструкции по сборке. 1
Таким образом, include больше подходит для включения кода CMake, а add_subdirectory — для включения внешних проектов и подпроектов в основной проект. 1