Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables Scons(生成系统)变量:使用自定义/未知值加载配置文件_Variables_Config_Scons - Fatal编程技术网

Variables Scons(生成系统)变量:使用自定义/未知值加载配置文件

Variables Scons(生成系统)变量:使用自定义/未知值加载配置文件,variables,config,scons,Variables,Config,Scons,我对Scons.Variables有问题。我想使用带有自定义键和值的配置文件。我的想法是加载带有键和值的配置文件,并将其与subfile方法一起使用。 例如(粗略代码): 但是vars.UnknownVariables()返回空列表。 我的测试模板文件: version = 105 mode = 'release' source = 'database' emulate = 'no' 和vars.UknownVariables()调用: 也许有人会尝试实现类似的东西,并能提供一些改进?我在Sc

我对Scons.Variables有问题。我想使用带有自定义键和值的配置文件。我的想法是加载带有键和值的配置文件,并将其与subfile方法一起使用。 例如(粗略代码):

但是vars.UnknownVariables()返回空列表。 我的测试模板文件:

version = 105
mode = 'release'
source = 'database'
emulate = 'no'
和vars.UknownVariables()调用:


也许有人会尝试实现类似的东西,并能提供一些改进?

我在Scons中没有找到需要的工具,但Python很棒(我现在是Python新手,只学习了几天)

Google给了我一些有用的链接,比如(我使用CustomParser的方法)

实施起来非常简单,我得到了我需要的:

Import('env')
templVars = parse_config('template.conf')
varEnv = env.Clone(tools = ['textfile', 'default'])
varEnv.Substfile('config.cfg.in', SUBST_DICT = templVars)
config.cfg.in文件的内容:

this is simple text with template values
Version is %version%
Build mode is %mode%

Emulator mode %emulate%

Thanks for using Avina !
template.conf文件的内容:

%version% = 105
%mode% = 'test1'
%source% = 'database'
%emulate% = 'no'
和结果文件:

this is simple text with template values
Version is 105
Build mode is 'test1'

Emulator mode 'no'

Thanks for using Avina !
%version% = 105
%mode% = 'test1'
%source% = 'database'
%emulate% = 'no'
this is simple text with template values
Version is 105
Build mode is 'test1'

Emulator mode 'no'

Thanks for using Avina !