cmake add_子目录,其cmake文件名不是CMakeLists.txt

cmake add_子目录,其cmake文件名不是CMakeLists.txt,cmake,Cmake,CMake文档说明,当执行add_子目录时,CMake会在目录中查找CMakeLists.txt。有没有办法更改makefile的名称?例如,如果我有两个cmake文件,用于两种完全不同的配置,并且不想将所有内容混合在一个配置中 当然,我可以创建CMakeLists.txt并根据配置在其中包含其他内容,但我只是想知道是否可以让add_子目录查找具有任意名称的make文件不,没有办法。文件名CMakeLists.txt在CMake本身中是不可配置的硬编码文件。正如您所说,您最好的选择是创建一个“路

CMake文档说明,当执行add_子目录时,CMake会在目录中查找CMakeLists.txt。有没有办法更改makefile的名称?例如,如果我有两个cmake文件,用于两种完全不同的配置,并且不想将所有内容混合在一个配置中


当然,我可以创建CMakeLists.txt并根据配置在其中包含其他内容,但我只是想知道是否可以让add_子目录查找具有任意名称的make文件

不,没有办法。文件名
CMakeLists.txt
在CMake本身中是不可配置的硬编码文件。正如您所说,您最好的选择是创建一个“路标”
CMakeLists.txt
文件,该文件将根据您需要的任何逻辑包含()真正的内容。

我知道这个问题很老,但无论如何我都会回答,以防对某人有所帮助。根据《专业CMake》第三版,您应该使用

包括(文件名[可选][结果变量myVar][无策略范围])

“include()需要读取文件名,而add_subdirectory()需要一个目录,并在该目录中查找CMakeLists.txt文件。传递给include()的文件名通常具有扩展名.cmake,但它可以是任何文件。”第56页

在add_subdirectory()和include()之间还有其他需要注意的区别,因此我建议你去读一读这本书