2011-10-28 6 views
10

क्या मेकफ़ाइल या सीएमके फ़ाइल में समानांतर में एकाधिक सूचियों पर लूप करने का कोई तरीका है?मेकफ़ाइल या सीएमके फ़ाइल में सूचियों पर समांतर पुनरावृत्ति

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) 

इस पर अमल होगा::

मैं की तरह CMake में निम्नलिखित, AFAICT को छोड़कर इस वाक्य समर्थित नहीं है कुछ करना चाहते हैं

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

मैं में एक जवाब को स्वीकार करेंगे या तो सीएमके या मेक, हालांकि सीएमके को प्राथमिकता दी जाएगी। धन्यवाद!

उत्तर

17

ये रहा:

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

यह अगर सूचियों खाली हैं असफल हो जायेगी। आपको जांच करने के लिए अतिरिक्त सशर्त जोड़ना होगा –

संबंधित मुद्दे