2017-03-09 264 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一個文件就足夠了。