scons脚本应用笔记

下面代码段包含:使用环境变量,打印,连接字符串,判断字符串相同,列出目录中所有文件,执行文件拷贝。

import('env')
env = env.Clone()
import os
from os.path import join,basename
from glob import glob


#用VariantDir表示生成文件应放在与源文件不同的目录中
env.VariantDir('${BUILDPATH}', SRCPATH, duplicate=0)

#调试打印
print "   1: " + str(env.has_key('MY_PLATFORM'))
#".upper()方法可以将字符串转为大写"
print "   2: " + env['MY_PLATFORM'].upper()

#用"join"连接字符串
TAR_KEY = join(env.subst(SRCPATH), 'my_inlcude.h')

#判断环境变量中是否有“MY_PLATFORM”
if env.has_key('MY_PLATFORM'):
    #用"+"连接字符串
    NEW_FNAME = 'my_key_' + env['MY_PLATFORM'].upper() + '.h'

#用 "glob" 列出路径下的文件
for fname in glob(join(env.subst(SRCPATH), 'my_key_*')):
    #“==”判断字符串是否相等
    if fname==NEW_FNAME:
        #文件拷贝,从fname拷贝到TAR_RSA_KEY
	    env.Execute(Copy(TAR_KEY, fname))

env.VariantDir()

将编译生成的文件和源代码目录相互分离

VariantDir(variant_dir, src_dir, [duplicate])
env.VariantDir(variant_dir, src_dir, [duplicate])

e.g.
env.VariantDir('${BUILDPATH}', SRCPATH, duplicate=0)

variant_dir  编译文件的生成目录,一般不能位于src_dir目录下
src_dir 源代码目录
duplicate: 0 -- 不复制源代码的生成目录  1--复制源代码到生成目录   (未指定时,默认=1)
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值