我尝试配置我的 CMake 项目,以便它可以接受动态源列表。但由于某种原因,我从文件函数中得到了空列表。所以我尝试以两种方式执行相同的操作:
[1] 静态列表(不需要的方式)
set(VARIANT_A "src/dir1/*.cpp src/dur2/*.cpp src/dir3/*.cpp")
file(GLOB SRC . ${VARIANT_A})
messages(${SRC})
在这里我得到了我需要的文件列表。
[2] 动态列表(即我想做的)
set(VARIANT_B "dir1 dir2 dir3")
string(REPLACE " " ";" DirList ${VARIANT_B})
set(Sources "")
foreach(Dir ${DirList})
set(Sources "src/${Source}/*cpp ${Sources}")
endforeach()
message(${Sources})
file(GLOB SRC . ${Sources})
messages(${SRC})
尽管message(${Sources})
打印出相同的字符串,但由于某种原因,我在这里得到了空列表${VARIANT_A}
。
那么我做错了什么?