如何获取未知长度的 CMake 列表的最后一个元素



我有一个包含字符串的未知长度列表。 我想将最后一项与倒数第二项进行比较,但我找不到一种简单的方法来检索这些元素,以便我可以比较它们。

我尝试获取列表的长度,然后使用 (length-1( 作为我传递到列表GET函数中的索引,但这似乎不起作用。

set(my_list a b c) # I don't actually know the length of the original list
list(LENGTH my_list list_len)
list(GET my_list (list_len-1) last_item) # doesn't work

我希望将元素c保存在last_item变量中,但它仍然是空的。 在CMake中执行此操作的正确方法是什么?

您必须使用 math 才能执行数学运算。

list(LENGTH my_list list_len)
math(EXPR list_last "${list_len} - 1")
list(GET my_list ${list_last} last_item)

编辑:可以使用负数从列表末尾获取元素,您可以使用 -1 获取列表的最后一项:

list(GET my_list -1 last_item)

最新更新