如何将 CMake 列表作为集合进行操作?
How do I manipulate CMake lists as sets?
在CMake中,列表被广泛使用。有时你有两个项目列表(基本上是字符串),你想考虑它们的交集、差异或联合。就像我刚刚想到的 。
如何生成这样的交集、差集或并集列表?
注意:输出不能重复,输入不能重复
假设我们的列表在变量 S
和 T
中。
对于工会,写:
list(APPEND union_list ${S} ${T})
list(REMOVE_DUPLICATES union_list)
设置差,写:
list(APPEND S_minus_T ${S})
list(REMOVE_ITEM S_minus_T ${T})
然后我们用一些集合恒等式通过对称差求交集:
- S∩T = (S∪T) ∖ (S∆T)
- S∆T = (S∖T) ∪ (T\S)
在CMake中,列表被广泛使用。有时你有两个项目列表(基本上是字符串),你想考虑它们的交集、差异或联合。就像我刚刚想到的
如何生成这样的交集、差集或并集列表?
注意:输出不能重复,输入不能重复
假设我们的列表在变量 S
和 T
中。
对于工会,写:
list(APPEND union_list ${S} ${T})
list(REMOVE_DUPLICATES union_list)
设置差,写:
list(APPEND S_minus_T ${S})
list(REMOVE_ITEM S_minus_T ${T})
然后我们用一些集合恒等式通过对称差求交集:
- S∩T = (S∪T) ∖ (S∆T)
- S∆T = (S∖T) ∪ (T\S)