Я хочу сократить вызовы макросов CMake в моем коде ниже и сжать его в один вызов макросов CMake для выполнения моей операции с помощью оператора if-else.
Мне нужно запустить ctest
(используя CMake ), передавая различные параметры высоты и ширины.
Пожалуйста, рассмотрите это как некоторые арифметические c операции.
В моем случае, в зависимости от ширины, мои диапазоны высоты будут меняться следующим образом:
Width = 8 ,then height will be 8 16 24
Width = 16 ,then height will be 16 24
Width = 24 ,then height will be 24 32
Итак, можно ли использовать какой-то оператор if-else в файле CMake для создания один вызов EXECUTE_OPERATION(${width_val} ${height_val} )
?
Мой текущий файл CMake выглядит следующим образом:
set(width 8)
set(size 8 16 24 )
foreach(size_val ${size}
foreach(width_val ${width})
EXECUTE_OPEARTION(${width_val} ${height_val} )
endforeach(width_val)
endforeach(size_val)
---------------------------
set(width 16)
set(height 16 24 )
foreach(height_val ${height}
foreach(width_val ${width})
EXECUTE_OPEARTION(${width_val} ${height_val} )
endforeach(width_val)
endforeach(size_val)
---------------------------
set(width 24)
set(size 24 32 )
foreach(size_val ${size}
foreach(width_val ${width})
EXECUTE_OPEARTION(${width_val} ${height_val} )
endforeach(width_val)
endforeach(size_val)
---------------------------
Я попытался сделать это, используя следующее, но это не работал:
set(width 8 16 24 )
if(width == 8)
set(height 8 16 24 )
elif(width == 16)
set(height 16 24 )
elif(width == 24)
set(height 24 32)
foreach(height_val ${height}
foreach(width_val ${width})
EXECUTE_OPEARTION(${width_val} ${height_val} )
endforeach(width_val)
endforeach(size_val)