<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>How about the following two examples for a table or 2d array.</div><div><br></div><div>In the first one, each column can have a name too. &nbsp;Its like an array of pointers in C++.</div><div><br></div><div>set(fruits apple orange banana)</div><div>set(animals cat dog elephant)</div><div>set(columns fruits animals)</div><div><br></div><div>foreach(column&nbsp;${columns})</div><div>&nbsp; foreach(item ${${column}})</div><div>&nbsp; &nbsp; message("${column} has item ${item}")</div><div>&nbsp; endforeach()</div><div>endforeach()</div><div><br></div><div><br></div><div><br></div><div>Or if you have pairs, one fruit with one animal</div><div><div><br></div><div>set(tuples</div><div>&nbsp; "apple\;cat"</div><div>&nbsp; "orange\;dog"</div><div>&nbsp; "banana\;elephant"</div><div>&nbsp; )</div><div><br></div><div>foreach(pair ${tuples})</div><div>&nbsp; message("pair&nbsp;has items ${pair}")</div><div>&nbsp; foreach(component ${pair})</div><div>&nbsp; &nbsp; message("component = ${component}")</div><div>&nbsp; endforeach()</div><div>endforeach()</div></div><div><br></div><div><br></div><div>Both of those seem close enough to 2d array functionality using the cmake language.</div><div><br></div><div>Clint</div><br><div><div>On Nov 29, 2011, at 4:28 PM, Robert Dailey wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">I have created a pretty clean solution to this until there is native support for multi-dimensional arrays in CMake. I have attached the module, hopefully it will prove useful to others. Here is an example of how to use it:<div>
<br></div><div><div>set( two_dee_array</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>apple<span class="Apple-tab-span" style="white-space:pre">                        </span>cat</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>orange<span class="Apple-tab-span" style="white-space:pre">                </span>dog</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>banana<span class="Apple-tab-span" style="white-space:pre">                </span>elephant</div><div>)</div><div><br></div><div>array2d_begin_loop( advanced "${two_dee_array}" 2 "fruit;animal" )</div>
<div>while( advanced )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>message( "Fruit: ${fruit}" )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>message( "Animal: ${animal}" )</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>array2d_advance()</div><div>endwhile()</div><div><br></div><div>---------</div>Robert Dailey<br>
<br><br><div class="gmail_quote">On Mon, Nov 28, 2011 at 2:31 PM, Robert Dailey <span dir="ltr">&lt;<a href="mailto:rcdailey@gmail.com">rcdailey@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Is it possible to have 2D arrays in CMake? As far as the core syntax is concerned, it seems like only 1D arrays are supported. So far I've had to work around this issue by using a flat array and skipping over elements using foreach() with a range and step.<div>

<br></div><div>Any ideas? Thanks.<br clear="all"><div><br></div><div>---------</div><span class="HOEnZb"><font color="#888888">Robert Dailey<br>
</font></span></div>
</blockquote></div><br></div>
<span>&lt;array2d.cmake&gt;</span>--<br><br>Powered by <a href="http://www.kitware.com">www.kitware.com</a><br><br>Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br><br>Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ">http://www.cmake.org/Wiki/CMake_FAQ</a><br><br>Follow this link to subscribe/unsubscribe:<br><a href="http://www.cmake.org/mailman/listinfo/cmake">http://www.cmake.org/mailman/listinfo/cmake</a></blockquote></div><br></body></html>