• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang hlib.Target_t类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: cnv_tdaq_install_headers

func cnv_tdaq_install_headers(wscript *hlib.Wscript_t, stmt Stmt) error {
	pkgname := filepath.Base(wscript.Package.Name)
	tgt := hlib.Target_t{Name: pkgname + "-install-headers"}
	tgt.Features = []string{"tdaq_install_headers"}
	wscript.Build.Targets = append(wscript.Build.Targets, tgt)
	return nil
}
开发者ID:hwaf,项目名称:hwaf-cmt2yml,代码行数:7,代码来源:converters_tdaq.go


示例2: cnv_tdaq_install_scripts

func cnv_tdaq_install_scripts(wscript *hlib.Wscript_t, stmt Stmt) error {
	pkgname := filepath.Base(wscript.Package.Name)
	tgt := hlib.Target_t{Name: pkgname + "-install-scripts"}
	tgt.Features = []string{"tdaq_install_scripts"}
	tgt.Source = []hlib.Value{hlib.DefaultValue(
		"script-files",
		[]string{"scripts/*"},
	)}
	wscript.Build.Targets = append(wscript.Build.Targets, tgt)
	return nil
}
开发者ID:hwaf,项目名称:hwaf-cmt2yml,代码行数:11,代码来源:converters_tdaq.go


示例3: cnv_atlas_install_data

func cnv_atlas_install_data(wscript *hlib.Wscript_t, stmt Stmt) error {
	//x := stmt.(*ApplyPattern)
	//fmt.Printf(">>> [%s] \n", x.Name)
	pkgname := filepath.Base(wscript.Package.Name)
	tgt := hlib.Target_t{Name: pkgname + "-install-data"}
	tgt.Features = []string{"atlas_install_data"}
	tgt.Source = []hlib.Value{hlib.DefaultValue(
		"data-files",
		[]string{"data/*"},
	)}
	wscript.Build.Targets = append(wscript.Build.Targets, tgt)
	return nil
}
开发者ID:hwaf,项目名称:hwaf-cmt2yml,代码行数:13,代码来源:converters_atlasoff.go


示例4: waf_get_wscript


//.........这里部分代码省略.........
				wcfg.HwafCall = append(wcfg.HwafCall, icall.(string))
			}
		}
	}

	// ---------- build section -----------------------------------------------
	if _, ok := data["build"]; ok {
		wbld := &wscript.Build
		bld := waf_get_yaml_map(data["build"])
		if _, ok := bld["tools"]; ok {
			tools := bld["tools"].([]interface{})
			for _, itool := range tools {
				wbld.Tools = append(wbld.Tools, itool.(string))
			}
		}
		if _, ok := bld["hwaf-call"]; ok {
			calls := bld["hwaf-call"].([]interface{})
			for _, icall := range calls {
				wbld.HwafCall = append(wbld.HwafCall, icall.(string))
			}
		}
		// FIXME:
		//  handle 'env' section
		//  handle 'tag' section

		tgt_names := make([]string, 0, len(bld))
		for k, _ := range bld {
			if k != "hwaf-call" && k != "tools" && k != "env" {
				tgt_names = append(tgt_names, k)
			}
		}
		for _, n := range tgt_names {
			tgt := waf_get_yaml_map(bld[n])
			wtgt := hlib.Target_t{
				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 != "" {
开发者ID:ChristianArnault,项目名称:hwaf,代码行数:67,代码来源:wafcontext.go


示例5: analyze

func (r *Renderer) analyze() error {
	var err error

	basedir := filepath.Dir(filepath.Dir(r.req.Filename))

	r.pkg = hlib.Wscript_t{
		Package:   hlib.Package_t{Name: basedir},
		Configure: hlib.Configure_t{Env: make(hlib.Env_t)},
		Build:     hlib.Build_t{Env: make(hlib.Env_t)},
	}
	wscript := &r.pkg

	// targets
	apps := make(map[string]*Application)
	libs := make(map[string]*Library)

	// first pass: discover targets
	for _, stmt := range r.req.Stmts {
		switch stmt.(type) {
		case *Application:
			x := stmt.(*Application)
			apps[x.Name] = x

		case *Library:
			x := stmt.(*Library)
			libs[x.Name] = x
		}
	}

	// list of macros related to targets.
	// this will be used to:
	//  - fold them together
	//  - pre-process macro_append, macro_remove, ...
	//  - dispatch to wscript equivalents. e.g.:
	//     - <name>linkopts -> ctx(use=[...], cxxshlibflags=[...])
	//     - <name>_dependencies -> ctx(depends_on=[...])
	//     - includes -> ctx(includes=[..])
	macros := make(map[string][]Stmt)

	tgt_names := make([]string, 0, len(apps)+len(libs))
	for k, _ := range apps {
		tgt_names = append(tgt_names, k)
	}
	for k, _ := range libs {
		tgt_names = append(tgt_names, k)
	}
	sort.Strings(tgt_names)

	//fmt.Printf("+++ tgt_names: %v\n", tgt_names)

	// second pass: collect macros
	for _, stmt := range r.req.Stmts {
		switch x := stmt.(type) {
		default:
			continue
		case *Macro:
			//fmt.Printf("== [%s] ==\n", x.Name)
			//pat := x.Name+"(_dependencies|linkopts)"
			pat := ".*?"
			if !re_is_in_slice_suffix(tgt_names, x.Name, pat) {
				continue
			}
			macros[x.Name] = append(macros[x.Name], x)

		case *MacroAppend:
			pat := ".*?"
			if !re_is_in_slice_suffix(tgt_names, x.Name, pat) {
				continue
			}
			macros[x.Name] = append(macros[x.Name], x)

		case *MacroRemove:
			pat := ".*?"
			if !re_is_in_slice_suffix(tgt_names, x.Name, pat) {
				continue
			}
			macros[x.Name] = append(macros[x.Name], x)

		}
	}

	// models private/public, end_private/end_public
	ctx_visible := []bool{true}

	// 3rd pass: collect libraries and apps
	// this is to make sure the profile-converters get them already populated
	for _, stmt := range r.req.Stmts {
		wbld := &wscript.Build
		switch x := stmt.(type) {
		case *Library:
			tgt := hlib.Target_t{Name: x.Name}
			srcs, rest := sanitize_srcs(x.Source, "src")
			// FIXME: handle -s=some/dir
			if len(rest) > 0 {
			}
			val := hlib.Value{
				Name: x.Name,
				Set: []hlib.KeyValue{
					{Tag: "default", Value: srcs},
				},
//.........这里部分代码省略.........
开发者ID:hwaf,项目名称:hwaf-cmt2yml,代码行数:101,代码来源:render.go



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang gobot.After函数代码示例发布时间:2022-05-28
下一篇:
Golang context.Context类代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap