foreach
Оценить группу команд для каждого значения в списке.
foreach(loop_var arg1 arg2 ...) COMMAND1(ARGS ...) COMMAND2(ARGS ...) ... endforeach(loop_var)
Все команды между foreach и соответствующим endforeach записываются без вызова. После оценки endforeach записанный список команд вызывается один раз для каждого аргумента, указанного в исходной команде foreach. Перед каждой итерацией цикла ${loop_var} будет установлено как переменная с текущим значением в списке.
foreach(loop_var RANGE total) foreach(loop_var RANGE start stop [step])
Foreach также может итерироваться по сгенерированному диапазону чисел. Существует три типа такой итерации:
- При указании одного числа диапазон будет содержать элементы [0, … до “total”] (включительно).
- При указании двух чисел диапазон будет содержать элементы от первого числа ко второму числу (включительно).
- Третье необязательное число — это приращение, используемое для итерации от первого числа ко второму числу (включительно).
foreach(loop_var IN [LISTS [list1 [...]]]
[ITEMS [item1 [...]]])
Итерируется по точному списку элементов. Опция LISTS называет список переменных со значениями, которые необходимо пройти, включая пустые элементы (пустая строка — список нулевой длины). (Обратите внимание, что аргументы макроса не являются переменными.) Опция ITEMS завершает разбор аргументов и включает все аргументы, следующие за ней, в итерацию.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.11/command/foreach.html