7

Kconfigファイルで環境変数の値を取得する構文を教えてもらえますか?

環境変数の値に基づいて、条件付きで別のKconfigファイルを入手する必要があります。

4

2 に答える 2

6

次のように、'option env' を使用して構成シンボルで環境変数の値を取得する必要があります。

設定 ENV_VAR
    ストリング
    オプション env="ENV_VAR"

ENV_VAR = "foo" の場合
ソース「foo_file」
終了

補足として、「source」ステートメントの $-references は、環境変数ではなく、構成変数を参照します。次のようなことはできません

ソース「foo/$ENV_VAR/Kconfig」

代わりに行う必要があります

構成 ENV_VAR_SYM
    ストリング
    オプション env="ENV_VAR"

ソース「foo/$ENV_VAR_SYM/Kconfig」

(もちろん、ENV_VAR_SYM は ENV_VAR と呼ばれることもあります。明確にするために名前を変更しただけです。)

別の例については、カーネル ルートにある最上位の Kconfig ファイルを参照してください。

(私は、Kconfig ベースの構成システムを操作するためのライブラリである Kconfiglib Kconfiglibの作成者です。)

于 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 に答える