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

时间:2019-06-13 18:41:44

标签: list 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中执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您必须使用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)