52
我CMakeLists.txt
包含此行:如何从cmake文件(GLOB ...)模式中排除单个文件?
file(GLOB lib_srcs Half/half.cpp Iex/*.cpp IlmThread/*.cpp Imath/*.cpp IlmImf/*.cpp)
和IlmImf
文件夹包含b44ExpLogTable.cpp
,我需要从构建中排除。
如何实现这一目标?
我CMakeLists.txt
包含此行:如何从cmake文件(GLOB ...)模式中排除单个文件?
file(GLOB lib_srcs Half/half.cpp Iex/*.cpp IlmThread/*.cpp Imath/*.cpp IlmImf/*.cpp)
和IlmImf
文件夹包含b44ExpLogTable.cpp
,我需要从构建中排除。
如何实现这一目标?
可以使用list
功能来操作列表,例如:
list(REMOVE_ITEM <list> <value> [<value> ...])
在你的情况,也许这样的事情会工作:
list(REMOVE_ITEM lib_srcs "IlmImf/b44ExpLogTable.cpp")
除了lib_srcs代替lib_src和IlmImf代替IlmThread,这没有窍门!万分感谢 ! – berak 2013-03-21 15:31:29
好的,我已经更新了答案! – Lindydancer 2013-03-21 15:57:54
注意:删除列表中的项目时,请确保您正在搜索的值与列表中的完全相同。我遇到了一些麻烦,混合了 $ {CMAKE_SOURCE_DIR} /src/file_to_remove.cpp 与 $ {CMAKE_CURRENT_SOURCE_DIR} /../ file_to_remove.cpp。 它指向相同的位置,但它不是相同的字符串。 消息(“$ {VARIABLE_NAME}”)可以帮助您调试这些内容。 – hbobenicio 2016-10-10 17:01:02