From cbf32e29a130d22bc734b7778e6304ac9df2a3e8 Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Mon, 14 May 2018 18:00:40 +0200 Subject: Expand environment variables in strings directly Make "$FOO" directly reference the environment variable $FOO in e.g. 'source' statements, instead of the symbol FOO. Use os.path.expandvars() to expand strings (which preserves "$FOO" as-is if no environment variable FOO exists). This gets rid of the 'option env' "bounce" symbols, which are mostly just spam and are buggy in the C tools (dependencies aren't always respected, due to parsing and evaluation getting mixed up). The same change will probably appear soon in the C tools as well. Keep accepting 'option env' to preserve some backwards compatibility, but ignore it when expanding strings. For compatibility with the C tools, bounce symbols will need to be named the same as the environment variables they reference (which is the case for the Linux kernel). This is a compatibility break, so the major version will be bumped to 6 at the next release. The main motivation for adding this now is to allow recording properties on each MenuNode in a clean way. 'option env' symbols interact badly with delayed dependency propagation. Side note: I have a feeling that recording environment variable values might be redundant to trigger rebuilds if sync_deps() is run at each compile. It should detect all changes to symbol values due to environment variables changing value. --- tests/Kdefconfig_existent | 5 ----- 1 file changed, 5 deletions(-) (limited to 'tests/Kdefconfig_existent') diff --git a/tests/Kdefconfig_existent b/tests/Kdefconfig_existent index 8dde443..304cae6 100644 --- a/tests/Kdefconfig_existent +++ b/tests/Kdefconfig_existent @@ -1,9 +1,4 @@ # $FOO is "defconfig_2" -# Should produce "Kconfiglib/tests/defconfig_2" - -config FOO - string - option env="BAR" config A string -- cgit v1.2.3