lapack def文件的建立

lapack def文件的建立

上次使用了遍历lapack目录的方法,建立的def文件,有些函数就没有加进来,因为有些.f文件在其他目录中,不在SRC目录里。

因此需要想一个一劳永逸的方法。

目前想到的是从proj文件获得文件名称的办法。

都在下面的代码中了

import re

projs=('C:\\lapack-3.8.0\\vc2015_build\\SRC\\lapack.vfproj',
       'C:\\lapack-3.8.0\\vc2015_build\\BLAS\\SRC\\blas.vfproj')

exclude='DSECND_EXT_ETIME SECOND_EXT_ETIME DSECND_EXT_ETIME SECOND_EXT_ETIME'

for proj in projs:
    path=proj[:proj.rfind('\\')]
    libname=proj[proj.rfind('\\')+1:proj.rfind('.')]

    deffile=open(path+"\\"+libname+".def",'wt')
    deffile.write("LIBRARY "+libname+"\nEXPORTS\n")
    ddeffile=open(path+"\\"+libname+"d.def",'wt')
    ddeffile.write("LIBRARY "+libname+"d\nEXPORTS\n")

    f=open(proj)

    for line in f.readlines():
        l=line.strip();
        m=re.match(r'^<File RelativePath=\"',l)
        if(m is not None):
            m=re.search(r'\.f\"[/]?>',l) #后面的“.f"\>”或“.f">”
            if(m is not None):
                path=line[19:line.find(m.group())]
                name=path[path.rfind('\\')+1:]
                if(exclude.find(name.upper())==-1):
                    deffile.write("\t"+name.upper()+"\n")
                    deffile.write("\t"+name+"_="+name.upper()+"\n") #别名
                    ddeffile.write("\t"+name.upper()+"\n")
                    ddeffile.write("\t"+name+"_="+name.upper()+"\n") #别名


    f.close()
    deffile.close()       
    ddeffile.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值