如何在cmake中对多个文件使用EXCLUDE REGEX

how to use EXCLUDE REGEX for multiple files in cmake

参考这个: How do I exclude a single file from a cmake `file(GLOB ... )` pattern?

如何在单个排除正则表达式命令中排除多个文件?

谢谢

How to exclude multiple files in a single exclude regex command?

只需编写一个匹配多个文件的正则表达式。记住 CMake 中的双重转义。

list(FILTER lib_srcs EXCLUDE REGEX "^(file1|file2|file3)$")

考虑做一个函数(未经测试,写在这里):

function(exclude_from_lsit list)
   foreach(ii IN LISTS ARGV)
       list(REMOVE_ITEM ${list} ${ii})
   endforeach()
   set(${list} ${${list}} PARENT_SCOPE)
endfunction()
exclude_from_list(lib_srcs
   file1
   file2
   file3
)

或者真的只是一个循环:

foreach(ii IN ITEMS
    file1
    file2
)
     list(REMOVE_ITEM lib_srcs ${ii})
endforeach()