在XXX.build.cs内,添加PublicDefinitions.Add("MacroName=MacroBody");
即可。
这个是基于文本的填充,所以可以写各种花里胡哨的 MacroBody,例如:
PublicDefinitions.Add("MACRONAME_AAA(x)=for(int32 i=0;i<x;++i)");
或者
PublicDefinitions.AddRange(
new string[] {
"MACRONAME_AAA(x)=for(int32 i=0;i<x;++i)",
}
);
在 Build 后,在 Intermediate\Build 内会生成 Definitions.ModuleName.h 的文件,内部就包含了这样一句宏
#define MACRONAME_AAA(x) for(int32 i=0;i<x;++i)
在不加等于号的情况下,默认生成的宏内容为1
:
PublicDefinitions.Add("MacroName");
->
#define MacroName 1
如果需要生成空宏,需要加等于号
PublicDefinitions.Add("MacroName=");
->
#define MacroName