2017-03-09 191 views
1

在所有的cmake文件,我想避免写所有线路喜欢:包括包含在文件夹

SET (MYPROJECT_CMAKE_MACRO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake) 

INCLUDE (${MYPROJECT_CMAKE_MACRO_DIR}/firstexample.cmake) 
INCLUDE (${MYPROJECT_CMAKE_MACRO_DIR}/secondexample.cmake) 
... 

,包括在文件夹cmake的所有文件。有没有一个命令或一些算法来做到这一点?

感谢

+0

随着一些好的编辑器如Sublime或Kate和'ls * cmake'在您的终端中,您立即编写这些代码。或者你的理由是什么? – usr1234567

回答

1

您可以使用file(GLOB ...)标识该组文件的内容,然后再使用foreach循环。例如:

file(GLOB cmakeFiles ${MYPROJECT_CMAKE_MACRO_DIR}/*.cmake) 
foreach(cmakeFile ${cmakeFiles}) 
    message("INCLUDE ${cmakeFile}") 
    INCLUDE(${cmakeFile}) 
endforeach(cmakeFile) 

你能做出这样成一个函数,然后多次使用它,但是,从它的父上下文CMakeLists.txt继承,所以通常包括在根CMakeLists.txt一个文件就足够了。