有人能为我提供在Kconfig文件中获取环境变量值的语法吗?
根据环境变量的值,我需要有条件地获取另一个Kconfig文件。
答案 0 :(得分:5)
您需要使用'option env'在配置符号中捕获环境变量的值,如下所示:
config ENV_VAR string option env="ENV_VAR" if ENV_VAR = "foo" source "foo_file" endif
作为旁注,'source'语句中的$ -ference引用了配置变量,而不是环境变量。你不能做像
这样的事情source "foo/$ENV_VAR/Kconfig"
你需要做
config ENV_VAR_SYM string option env="ENV_VAR" source "foo/$ENV_VAR_SYM/Kconfig"
(ENV_VAR_SYM当然可以称为ENV_VAR;我只是更改了名称以澄清事情。)
另一个例子,请参阅内核根目录中的顶级Kconfig文件。
(我是Kconfiglib Kconfiglib的作者,这是一个用于处理基于Kconfig的配置系统的库。)
答案 1 :(得分:2)
<expr> ::= <symbol> (1)
<symbol> '=' <symbol> (2)
<symbol> '!=' <symbol> (3)
'(' <expr> ')' (4)
'!' <expr> (5)
<expr> '&&' <expr> (6)
<expr> '||' <expr> (7)
- misc options: "option" <symbol>[=<value>]
- "env"=<value>
This imports the environment variable into Kconfig.
if:
"if" <expr>
<if block>
"endif"
This defines an if block. The dependency expression <expr> is appended
to all enclosed menu entries.
source:
"source" <prompt>
This reads the specified configuration file. This file is always parsed.
所以我试试
option env="YOURVAR"
if YOURVAR=foo
source "somefile"
endif
if YOURVAR!=foo
source "someotherfile"
endif