| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- #! /usr/bin/python
- # -*- coding: utf-8 -*-
- import os, sys
- import time
- import re
- import string
- from utility import version
- from utility.util import log
- from utility.util import LogLevel
- class ModuleObj:
- _chip_id = ''
- _gen_path = ''
- def __init__(self, name1, name2):
- self.__hName = name1
- self.__dtsiName = name2
- self.__data = {}
- def get_hFileName(self):
- return self.__hName
- def get_dtsiFileName(self):
- return self.__dtsiName
- def get_cfgInfo(self, section):
- pass
- def set_data(self, key, value):
- self.__data[key] = value
- def get_data(self):
- return self.__data
- def gen_files(self):
- self.gen_hFile()
- self.gen_dtsiFile()
- def gen_hFile(self):
- fp = open(os.path.join(ModuleObj.get_genPath(), ModuleObj.get_hFileName(self)), 'w')
- gen_str = ''
- gen_str += ModuleObj.writeComment()
- gen_str += ModuleObj.writeHeader(ModuleObj.get_hFileName(self))
- gen_str += self.fill_hFile()
- gen_str += ModuleObj.writeTail(ModuleObj.get_hFileName(self))
- fp.write(gen_str)
- fp.close()
- def gen_dtsiFile(self):
- fp = open(os.path.join(ModuleObj.get_genPath(), ModuleObj.get_dtsiFileName(self)), 'w')
- gen_str = ''
- gen_str = ModuleObj.writeComment()
- gen_str += ModuleObj.writeHeader(ModuleObj.get_dtsiFileName(self))
- gen_str += self.fill_dtsiFile()
- fp.write(gen_str)
- fp.close()
- def gen_spec(self, para):
- if re.match(r'.*_h$', para):
- self.gen_hFile()
- elif re.match(r'.*_dtsi', para):
- self.gen_dtsiFile()
- elif re.match(r'.*_c', para):
- self.gen_cFile()
- @staticmethod
- def get_figPath():
- figPath = os.path.join(sys.path[0], 'config', ModuleObj.get_chipId() + '.fig')
- if not os.path.exists(figPath) or not os.path.isfile(figPath):
- log(LogLevel.error, 'Can not find %s.fig file!' %(ModuleObj.get_chipId()))
- sys.exit(-1)
- return figPath
- @staticmethod
- def get_cmpPath():
- cmpPath = os.path.join(sys.path[0], 'config', 'YuSu.cmp')
- if not os.path.exists(cmpPath) or not os.path.isfile(cmpPath):
- log(LogLevel.error, 'Can not find YuSu.cmp file!')
- sys.exit(-1)
- return cmpPath
- @staticmethod
- def get_chipId():
- return ModuleObj._chip_id
- @staticmethod
- def set_chipId(id):
- ModuleObj._chip_id = id
- @staticmethod
- def set_genPath(path):
- ModuleObj._gen_path = path
- @staticmethod
- def get_genPath():
- return ModuleObj._gen_path
- @staticmethod
- def writeComment():
- stamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
- ver_info = version.VER_MAIN + '.' + version.VER_SUB + '.' + version.BUILD_SN
- gen_str = '''/*\n * Generated by MTK SP DrvGen Version: '''
- gen_str += ver_info
- gen_str += ''' for '''
- gen_str += ModuleObj.get_chipId()
- gen_str += '''.\n'''
- gen_str += ''' * '''
- gen_str += stamp
- gen_str += '''\n * Do Not Modify The File.\n'''
- gen_str += ''' * Copyright Mediatek Inc. (c) 2016.\n*/\n\n'''
- return gen_str
- @staticmethod
- def writeHeader(name):
- str = ''
- if re.match(r'.*\.h$', name):
- name = string.replace(name, '.', '_')
- name = string.replace(name, '-', '_')
- str += '''#ifndef __%s\n''' %(name.upper())
- str += '''#define __%s\n''' %(name.upper())
- str += '''\n'''
- elif re.match(r'.*\.dtsi$', name):
- str += '''/*************************\n'''
- str += ''' * %s File\n''' %(name.replace('cust_', '').replace('.', ' ').upper())
- str += '''*************************/\n\n'''
- return str
- @staticmethod
- def writeTail(name):
- if re.match(r'.*\.h$', name):
- gen_str = '''\n\n#endif /* %s */\n''' %('__' + string.replace(name, '.', '_').upper())
- return gen_str
|