7

谁能给我提供在 Kconfig 文件中获取环境变量值的语法?

根据环境变量的值,我需要有条件地获取另一个 Kconfig 文件。

4

2 回答 2

6

您需要使用“option env”在配置符号中捕获环境变量的值,如下所示:

配置 ENV_VAR
    细绳
    选项 env="ENV_VAR"

如果 ENV_VAR = "foo"
源“foo_file”
万一

作为旁注,“源”语句中的 $-references 指的是配置变量,而不是环境变量。你不能做类似的事情

来源“foo/$ENV_VAR/Kconfig”

你将需要做

配置 ENV_VAR_SYM
    细绳
    选项 env="ENV_VAR"

源“foo/$ENV_VAR_SYM/Kconfig”

(ENV_VAR_SYM 当然也可以称为 ENV_VAR;我只是更改了名称以澄清事情。)

另一个示例,请参见内核根目录中的顶级 Kconfig 文件。

(我是 Kconfiglib Kconfiglib的作者,这是一个用于处理基于 Kconfig 的配置系统的库。)

于 2012-12-18T22:18:38.867 回答
2

根据kconfig 文档

<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
于 2012-04-11T04:39:54.990 回答