当前位置: 首页>>代码示例>>Golang>>正文


Golang Target_t.Env方法代码示例

本文整理汇总了Golang中github.com/hwaf/hwaf/hlib.Target_t.Env方法的典型用法代码示例。如果您正苦于以下问题:Golang Target_t.Env方法的具体用法?Golang Target_t.Env怎么用?Golang Target_t.Env使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/hwaf/hwaf/hlib.Target_t的用法示例。


在下文中一共展示了Target_t.Env方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: waf_get_wscript


//.........这里部分代码省略.........
				Name:   n,
				KwArgs: make(map[string][]hlib.Value),
			}
			if v, ok := tgt["features"]; ok {
				switch v := v.(type) {
				case string:
					tmps := strings.Split(v, " ")
					for _, tmp := range tmps {
						tmp = strings.Trim(tmp, " ")
						if tmp != "" {
							wtgt.Features = append(wtgt.Features, tmp)
						}
					}

				case []interface{}:
					for _, iv := range v {
						v := iv.(string)
						tmps := strings.Split(v, " ")
						for _, tmp := range tmps {
							tmp = strings.Trim(tmp, " ")
							if tmp != "" {
								wtgt.Features = append(wtgt.Features, tmp)
							}
						}
					}

				case []string:
					for _, iv := range v {
						tmps := strings.Split(iv, " ")
						for _, tmp := range tmps {
							tmp = strings.Trim(tmp, " ")
							if tmp != "" {
								wtgt.Features = append(wtgt.Features, tmp)
							}
						}
					}

				default:
					return nil, fmt.Errorf("unknown type (%T) for target [%s] in 'build' section", v, n)
				}
				delete(tgt, "features")
			}

			if _, ok := tgt["name"]; ok {
				nn := tgt["name"].(string)
				if nn != wtgt.Name {
					return nil, fmt.Errorf("inconsistency in target [%s] declaration: name=%q but key=%q", n, nn, wtgt.Name)
				}
				delete(tgt, "name")
			}

			if _, ok := tgt["target"]; ok {
				wtgt.Target = tgt["target"].(string)
				delete(tgt, "target")
			}

			if _, ok := tgt["group"]; ok {
				wtgt.Group = tgt["group"].(string)
				delete(tgt, "group")
			}

			if _, ok := tgt["env"]; ok {
				m := tgt["env"].(map[interface{}]interface{})
				wtgt.Env = make(hlib.Env_t, len(m))
				for k, v := range m {
					kk := k.(string)
					vv := v.(string)
					wtgt.Env[kk] = hlib.DefaultValue(kk, []string{vv})
				}
				delete(tgt, "env")
			}

			cnvmap := map[string]*[]hlib.Value{
				"source":          &wtgt.Source,
				"use":             &wtgt.Use,
				"defines":         &wtgt.Defines,
				"cflags":          &wtgt.CFlags,
				"cxxflags":        &wtgt.CxxFlags,
				"linkflags":       &wtgt.LinkFlags,
				"shlibflags":      &wtgt.ShlibFlags,
				"stlibflags":      &wtgt.StlibFlags,
				"rpath":           &wtgt.RPath,
				"includes":        &wtgt.Includes,
				"export_includes": &wtgt.ExportIncludes,
				"install_path":    &wtgt.InstallPath,
			}
			for k, v := range tgt {
				vv := waf_gen_hvalue_from(k, v)
				if dst, ok := cnvmap[k]; ok {
					*dst = append(*dst, vv)
				} else {
					wtgt.KwArgs[k] = append(wtgt.KwArgs[k], vv)
				}
			}
			wbld.Targets = append(wbld.Targets, wtgt)
		}

	}
	return &wscript, err
}
开发者ID:hwaf,项目名称:hwaf,代码行数:101,代码来源:wafcontext.go


注:本文中的github.com/hwaf/hwaf/hlib.Target_t.Env方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。