在CMake中,命令SUBDIRS()和ADD_SUBDIRECTORY()之间有什么区别

时间:2013-11-06 16:17:02

标签: c++ build cmake build-automation

CMake中的

,命令SUBDIRS()和ADD_SUBDIRECTORY()之间有什么区别

当我读PoDoFo src时,我发现一些CMakeLists.txt使用SUBDIRS一些人使用ADD_SUBDIRECTORY, 我是新手!谢谢!

2 个答案:

答案 0 :(得分:3)

来自CMake Mailing List

  

ADD_SUBDIRECTORY()在调用它时处理子目录,而SUBDIRS()将dirs推送到在当前CMakeLists文件末尾处理的列表 - 这是旧行为和一些变量被初始化'无序,或至少以意想不到的顺序。

(...)

  

因此,如果在父目录中设置变量,则在使用SUBDIRS()时将不会在子目录中看到它们。

此外,CMake's Documentation建议您改为使用ADD_SUBDIRECTORY(),因为SUBDIRS()已被弃用。

答案 1 :(得分:2)

不推荐使用

subdirs,使用add_subdirectory

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