如果我FILE (GLOB "*.cpp")
它在哪里?搜索的工作目录是什么?它是当前的源目录吗?这似乎没有在任何地方记录(尽管它是FILE (COPY
)。
答案 0 :(得分:2)
FILE(GLOB globbing expression)
接受globbing表达式中的路径。因此,您可以在表达式中包含任何路径。以下示例在子文件夹testdata中查找扩展名为dat的所有文件:
file(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/testdata/*.dat")
注意:使用预定义的路径变量(如CMAKE_CURRENT_SOURCE_DIR)可以避免考虑相对路径,并使CMakeLists.txt更具可重用性和平台无关性。
为:
file(GLOB generatedSources "../build-arm/autocode/*.c")
○:
file(GLOB generatedSources "${PROJECT_BINARY_DIR}/autocode/*.c")
答案 1 :(得分:0)
搜索发生在当前源目录中,即.getInputStream()
的目录。
作为关于你想要实现的目标的一个侧面评论,我要强调following:
注意:我们不建议使用GLOB来收集源文件列表 来自您的源代码树。如果源没有CMakeLists.txt文件更改 添加或删除,然后生成的构建系统无法知道何时 要求CMake重新生成。
答案 2 :(得分:0)
您还可以指定相对路径。我不确定何时添加RELATIVE
选项,但是至少从3.0.2版开始可以使用该选项。
here