我无法理解CMake.我想要做的是在构建过程中执行以下bash命令:
date +"%F %T" > timestamp
这将获取当前日期并将其写入文件.但是,我似乎无法使用CMake命令重现这个简单的操作.
以下是我尝试过的一些事情:
execute_process(COMMAND "date +'%F %T' > timestamp")
add_custom_command(OUTPUT timestamp COMMAND date +"%F %T")
file(WRITE timestamp date +"%F %T")
似乎都没有用.我几乎想知道他们是否甚至被处决了.
我对CMake及其语法的了解非常有限,所以我可能做错了.我希望有人能指出我正确的方向.谢谢!
use*_*321 17
我认为我的主要问题是我的命令参数缺少引号.另外,感谢@Mark Setchell,我意识到我应该用OUTPUT_VARIABLE它代替OUTPUT
无论如何,这是我得到的答案:
execute_process (
COMMAND bash -c "date +'%F %T'"
OUTPUT_VARIABLE outVar
)
Run Code Online (Sandbox Code Playgroud)
这会将bash命令的输出存储到变量中 outVar
file(WRITE "datestamp" "${outVar}")
Run Code Online (Sandbox Code Playgroud)
这会将内容写入outVar名为"datestamp"的文件中.
注意-使用bash -c还将在该变量的末尾添加新行,这将导致make抱怨,具体取决于您使用它的方式
build.make:***缺少分隔符。停止。
这应该解决以上问题
execute_process(COMMAND which grpc_cpp_plugin OUTPUT_VARIABLE GRPC_CPP_PLUGIN)
string(STRIP ${GRPC_CPP_PLUGIN} GRPC_CPP_PLUGIN)
message(STATUS "MY_VAR=${GRPC_CPP_PLUGIN}")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13910 次 |
| 最近记录: |