包括文件夹中包含的所有cmake文件

时间:2017-03-09 22:00:34

标签: cmake include

我想避免写下所有的行:

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文件夹中的所有文件。是否有命令或某种算法才能做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

您可以使用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包含一个文件就足够了。