我想避免写下所有的行:
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 :(得分: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
包含一个文件就足够了。