0
点赞
收藏
分享

微信扫一扫

1229_SCons的节点对象


全部学习汇总: ​​https://github.com/GreyZhang/g_SCons​​

从实操性以及对我个人需求的匹配性来说,感觉这一次看到的知识点并不是很重要。不过,为了防止继续往后学习有什么账号,这部分还是认真对待一下。

1229_SCons的节点对象_SCons

1229_SCons的节点对象_SCons_02

首先要明白什么是Node,这其实是SCons再内部泳衣表示所有的文件以及目录的一种方式。接下来,上面给了一个很简单的例子。也说明了为什么可能会存在这样的应用。一个很典型的应用方式就是再工程之中可能会存在不同的文件按照不同的编译选项来编译的情况。这样,就会用到不同的文件生成规则。最后,如何把各自生成的文件连接到一起呢?之前接触到的Program就可以做到这一点。

上面给出来的这个例子只是定义了一个宏在里面,意义也不是很大。我直接还是在之前的工程基础上来做这样的一个类似测试。

1229_SCons的节点对象_python_03

这个例子,其实就可以说明类似的应用场景。

但是,上面的例子实现的通用性并不是很好,改进的方式就可以使用builder method的返回值来处理,处理的效果可能会更加优雅。如此,上面的例子可以修改出如下的效果:

1229_SCons的节点对象_python_04

这里,其实是用了简单的python的处理方法。

1229_SCons的节点对象_list处理_05

针对显式的Node方法,SCons也提供了相应的处理功能。从构建到判断都有相应的功能支持,不过这个在我目前的自我需求来看可能不是很需要。

1229_SCons的节点对象_list处理_06

打印节点名称的功能感觉也仅仅是一个python的基础list处理的一个展示,其实本身不加-Q给出的处理信息就已经很丰富了,增加额外的打印信息的需求可能没有太多的意义。

1229_SCons的节点对象_list处理_07

Node信息的处理也可以用比较通用的python方式来做,一个简单的例子就是上面判断一个文件是否存在。看到这里,其实我一直还在考虑,或许我们可以干脆把这个配置文件用作最基础的配置,其他的处理直接借助于原汁原味的python,或许这样的组合方式更容易。

1229_SCons的节点对象_SCons_08

从一个节点或者字符串获取目录信息,这给出来的扼目录信息其实是包含文件本身的。上面的例子就是一个很好的说明,内容简单,我不去做具体的尝试了。这里引入了一个Environment的操作,看了下文档内容后面还有明确的介绍。但是从这个例子的效果,我们可以推测出来大概的扼功能。针对这里,其实是提供了一个类似变量应用的效果,在后面又引用了变量值。


举报

相关推荐

0 条评论