[CMake] doing simple math in cmake or useless foreach( RANGE )

Mats Kindahl mats at sun.com
Wed May 20 01:21:29 EDT 2009



Hendrik Sattler wrote:
> Hi,
> 
> either I cannot find it or it's not there: doing simple mathematic things like 
> substract 1 from a variable.
> 
> If that's not present, I do not understand how
> LIST( LENGTH MYLIST COUNT )
> FOREACH ( index RANGE ${COUNT} )
> list ( GET MYLIST ${index} entry )
> ....
> 
> will address non-present indexes in the list. I would the above statement 
> cover the range from 0 to COUNT-1 but it also cover COUNT itself like said in 
> the documentation. Does that actually make sense as the variable in the 
> documentation is called "total" but the loop count is "total+1"?
> 
> Currently I use a
>   if ( LESS )
> work-around but that looks like a hack.
> 
> Any ideas?

I used:

   list(LENGTH MYLIST _len)
   math(EXPR COUNT "${_len}-1")
   foreach(index RANGE ${COUNT})

but I also think that foreach() should assign integers in the range
0..${COUNT}-1 instead of 0..${COUNT}.

Just my few cents,
Mats Kindahl

> 
> HS
> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake

-- 
Mats Kindahl
Senior Software Engineer
Database Technology Group
Sun Microsystems


More information about the CMake mailing list