def UT_APPLICATION(name, sources, *args): """ create one UT Application object Args: name : the name of target sources : the SyntaxTag.TagSource object args : a variable number of SyntaxTag.TagLinkLDFlags, SyntaxTag.TagLibs, SyntaxTag.TagUTArgs """ # to check name of result file if not Function.CheckName(name): raise BrocArgumentIllegalError("name(%s) in UT_APPLICATION is illegal") tag_links = SyntaxTag.TagLDFlags() tag_libs = SyntaxTag.TagLibs() tag_utargs = SyntaxTag.TagUTArgs() for arg in args: if isinstance(arg, SyntaxTag.TagLDFlags): tag_links.AddSVs(arg.V()) elif isinstance(arg, SyntaxTag.TagLibs): tag_libs.AddSVs(arg.V()) elif isinstance(arg, SyntaxTag.TagUTArgs): tag_utargs.AddSVs(arg.V()) else: raise BrocArgumentIllegalError( "In UT_APPLICATION(%s) don't support %s" % (name, arg)) env = Environment.GetCurrent() app = Target.UTApplication(name, env, sources, tag_links, tag_libs, tag_utargs) if not env.AppendTarget(app): raise BrocArgumentIllegalError("UT_APPLICATION(%s) exists already" % name)
def LDFlags(d_flags, r_flags): """ add local link flags Args: d_flags : link flags in debug mode r_flags : link flags in release mode """ env = Environment.GetCurrent() tag = SyntaxTag.TagLDFlags() if env.BuildMode() == "debug": tag.AddSV(d_flags) else: tag.AddSV(r_flags) return tag