2011-10-28 23 views
10

Có cách nào lặp lại nhiều danh sách song song trong tệp makefile hoặc CMake không?Lặp song song trên danh sách trong tệp makefile hoặc CMake

Tôi muốn làm điều gì đó như sau trong CMake, trừ AFAICT cú pháp này không được hỗ trợ:

set(a_values a0 a1 a2) 
set(b_values b0 b1 b2) 
foreach(a in a_values b in b_values) 
    do_something_with(a b) 
endforeach(a b) 

Điều này sẽ thực hiện:

do_something_with(a0 b0) 
do_something_with(a1 b1) 
do_something_with(a2 b2) 

tôi sẽ chấp nhận một câu trả lời trong cả hai CMake hoặc Make, mặc dù CMake sẽ được ưa thích hơn. Cảm ơn!

Trả lời

17

Ở đây bạn đi:

set(list1 1 2 3 4 5) 
set(list2 6 7 8 9 0) 

list(LENGTH list1 len1) 
math(EXPR len2 "${len1} - 1") 

foreach(val RANGE ${len2}) 
    list(GET list1 ${val} val1) 
    list(GET list2 ${val} val2) 
    message(STATUS "${val1} ${val2}") 
endforeach() 
+2

này sẽ thất bại nếu bảng kê không có sản phẩm nào. Bạn phải thêm điều kiện bổ sung để kiểm tra –

Các vấn đề liên quan