cat config var1=value var2=value var3=-6ren">
gpt4 book ai didi

cmake - 如何在CMake中以 "bar=foo"语法加载变量?

转载 作者:行者123 更新时间:2023-12-04 13:08:26 25 4
gpt4 key购买 nike

能够在Makefile和Shell脚本之间共享同一文件是一件好事,因为它们都可以处理键-值对的以下语法:

$> cat config 
var1=value
var2=value
var3=value
var4=value
var5=value

因此,仅需使用Shell脚本中的 source config以及 include config中的 Makefile即可。但是,使用CMake时,语法变为 SET(var1 value)。有什么简单的方法可以使用上述语法向带有变量的文件提供CMake吗?我的意思是说我不喜欢运行,这很容易在它上面的 sed

最佳答案

@Guillaume的答案非常适合从CMakeLists.txt中生成配置文件。

但是,如果您希望将这样的配置文件的内容导入到CMake环境中,则需要添加以下内容:

file(STRINGS <path to config file> ConfigContents)
foreach(NameAndValue ${ConfigContents})
# Strip leading spaces
string(REGEX REPLACE "^[ ]+" "" NameAndValue ${NameAndValue})
# Find variable name
string(REGEX MATCH "^[^=]+" Name ${NameAndValue})
# Find the value
string(REPLACE "${Name}=" "" Value ${NameAndValue})
# Set the variable
set(${Name} "${Value}")
endforeach()

关于cmake - 如何在CMake中以 "bar=foo"语法加载变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17165905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com