в CMake, в чем разница между командой SUBDIRS () и ADD_SUBDIRECTORY ()

в CMake, в чем разница между командой SUBDIRS () и ADD_SUBDIRECTORY ()

когда я прочитал PoDoFo src, я обнаружил, что некоторые CMakeLists.txt используют SUBDIRS, некоторые используют ADD_SUBDIRECTORY,
Я новичок! Спасибо!

1

Решение

subdirs устарела, используйте add_subdirectory

http://www.cmake.org/cmake/help/git-next/command/subdirs.html

2

Другие решения

От Список рассылки CMake:

ADD_SUBDIRECTORY() обрабатывает subdir во время его вызова, тогда как SUBDIRS() помещает каталоги в список, который обрабатывается в конце текущего файла CMakeLists — это старое поведение, и некоторые переменные инициализируются «не по порядку» или, по крайней мере, в неожиданном порядке.

(…)

Таким образом, если вы установите переменные в родительском каталоге, они не будут видны в поддиректории, когда SUBDIRS() используется.

Кроме того, рекомендуется в Документация CMake что вы должны использовать ADD_SUBDIRECTORY() вместо этого, как SUBDIRS() устарела.

2