【发布时间】:2020-02-05 14:34:24
【问题描述】:
我正在处理使用 ctest 的 CMake 单元测试用例。
我在这里有一个问题。
我的 CMake 的某些部分如下:
set(size_w 32 )
set(powerof2_w 5 )
foreach(size ${size_w})
foreach(pwr_of_2 ${powerof2_w})
...
FUNCTION_EXE(${size} ${pwr_of_2})
endforeach(pwr_of_2)
endforeach(size)
set(size_w 64 )
set(powerof2_w 6 )
foreach(size ${size_w})
foreach(pwr_of_2 ${powerof2_w})
...
FUNCTION_EXE(${size} ${pwr_of_2})
endforeach(pwr_of_2)
endforeach(size)
set(size_w 128 )
set(powerof2_w 7 )
foreach(size ${size_w})
foreach(pwr_of_2 ${powerof2_w})
...
FUNCTION_EXE(${size} ${pwr_of_2})
endforeach(pwr_of_2)
endforeach(size)
set(size_w 256 )
set(powerof2_w 8 )
foreach(size ${size_w})
foreach(pwr_of_2 ${powerof2_w})
...
FUNCTION_EXE(${size} ${pwr_of_2})
endforeach(pwr_of_2)
endforeach(size)
预期:
我想减少一个带有powerof2_w参数的循环:
foreach(pwr_of_2 ${powerof2_w})
是否可以从foreach(size ${size_w}) for 循环本身内部的size_w 参数计算pwr_of_2 参数?
注意:另外,我想使用数组索引将所有这四个 for-loops 组合成一个 for-loop。
这在 CMake 中可行吗?
【问题讨论】:
-
您能否提供一个更具体的示例来说明所需的行为?这个应该做什么?因为
size_w和powerof2_w参数不是列表,所以每个循环只会有一次迭代... -
由于共享我的数据的限制,我想解释一下
size_w是我的块的宽度。在我的代码中,我正在计算 power_of_2 参数。它在我的代码中的名称不同。但我只需要从 cmake 发送该值,因为我不想在我的源文件中计算该参数。 -
这里
size_w正在从 32 ,64,128,256,512 ....sopowerof2_w更改为:5,6,7,8,9 -
@squareskittles,是否可以将这个 (32 ,64,128,256,512) 和 (5,6,7,8,9) 循环组合成一个循环,但需要进行一些条件检查。
-
@squareskittles,但是这对 (32 : 5) , (64:6) , (128:7) , (256:8) , (512:9) 应该是这样的
标签: foreach cmake exponentiation