Как получить последний элемент списка CMake неизвестной длины? - PullRequest
1 голос
/ 13 июня 2019

У меня есть список неизвестной длины, содержащий строки. Я хочу сравнить последний элемент со вторым по последнему элементу, но не могу найти простой способ получить эти элементы, чтобы сравнить их.

Я попытался получить длину списка, а затем использовал (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 Ответ

2 голосов
/ 13 июня 2019

Для выполнения математических операций необходимо использовать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...