Scons 获取在SCON中定义的基本文件名
我试图生成一个per sourcefile宏,该宏将保存源文件的基本文件名。这是为make而描述的 我试图覆盖对象生成器,但它不起作用。。。 我试着做所描述的事情 然后,替换建设者:Scons 获取在SCON中定义的基本文件名,scons,c-preprocessor,Scons,C Preprocessor,我试图生成一个per sourcefile宏,该宏将保存源文件的基本文件名。这是为make而描述的 我试图覆盖对象生成器,但它不起作用。。。 我试着做所描述的事情 然后,替换建设者: env['BUILDERS']['_Object'] = env['BUILDERS']['Object'] env['BUILDERS']['Object'] = my_object_builder 这不管用。我得到了以下错误: AttributeError: 'function' object has no
env['BUILDERS']['_Object'] = env['BUILDERS']['Object']
env['BUILDERS']['Object'] = my_object_builder
这不管用。我得到了以下错误:
AttributeError: 'function' object has no attribute 'src_suffixes'
我认为这与环境的MethodWrapper有关,但我无法验证
也许我从错误的角度出发。也许我应该更改每个源文件的环境(似乎需要做很多工作…)
主要的要求是使用将是无缝的。我不希望用户必须调用MyObjectBuilder类。此外,StaticLibrary生成器应该调用新的对象生成器
任何帮助都将不胜感激。
谢谢
没问题。找到了。这是一条单行线
env.Append(CCFLAGS=['-D__MY_FILENAME=\\"${SOURCE.file}\\"'])
只是添加了一个基于规则的define。
引号只是一个附加项,可以打印它,而不会造成表达式的冲突
env.Append(CCFLAGS=['-D__MY_FILENAME=\\"${SOURCE.file}\\"'])