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

Fei*_*hou 2 c++ build-automation build cmake

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

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

小智 6

CMake邮件列表

ADD_SUBDIRECTORY()在调用子目录时处理子目录,而SUBDIRS()将目录推送到在当前CMakeLists文件末尾处理的列表上-这是旧行为,并且某些var被“乱序”初始化,或者至少在意外情况下初始化订购。

(...)

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

此外,建议不要使用CMake的文档ADD_SUBDIRECTORY()而应该使用SUBDIRS()它。