我有一个参数化函数,mytestprogram.cmake
如下所示:
function(get_output_from_input output input)
set(${output} "test" PARENT_SCOPE)
endfunction()
问题:
如何get_output_from_input
从 shell 脚本调用 cmake 方法?
我了解到有一个-P <source.cmake>
标志,它将 CMake 置于脚本处理模式,我们可以使用它执行任意 CMake 代码,如下所示。
execute_process(COMMAND ${CMAKE_PROGRAM} -P yourscript.cmake)
get_output_from_input
所以,在这种情况下,我相信从 shell 脚本调用的方式如下所示?
input="some_input"
output=""
execute_process(get_output_from_input(output, input) ${CMAKE_PROGRAM} -P mytestprogram.cmake)
echo $output
但上述技巧不起作用。我的跑步方式execute_process
正确吗?
试图找出问题所在,似乎echo $CMAKE_PROGRAM
返回空?这可能是原因吗?我在这里想念什么get_output_from_input
?
环境:
cmake 版本 3.18.2
macOS Catalina