⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkextensions.py

📁 minimal python variant for small footprint apps like embedded apps
💻 PY
字号:
# Check for a module in a set of extension directories.# An extension directory should contain a Setup file# and one or more .o files or a lib.a file.import osimport stringimport parsesetupdef checkextensions(unknown, extensions):	files = []	modules = []	edict = {}	for e in extensions:		setup = os.path.join(e, 'Setup')		liba = os.path.join(e, 'lib.a')		if not os.path.isfile(liba):			liba = None		edict[e] = parsesetup.getsetupinfo(setup), liba	for mod in unknown:		for e in extensions:			(mods, vars), liba = edict[e]			if not mods.has_key(mod):				continue			modules.append(mod)			if liba:				# If we find a lib.a, use it, ignore the				# .o files, and use *all* libraries for				# *all* modules in the Setup file				if liba in files:					break				files.append(liba)				for m in mods.keys():					files = files + select(e, mods, vars,							       m, 1)				break			files = files + select(e, mods, vars, mod, 0)			break	return files, modulesdef select(e, mods, vars, mod, skipofiles):	files = []	for w in mods[mod]:		w = treatword(w)		if not w:			continue		w = expandvars(w, vars)		if skipofiles and w[-2:] == '.o':			continue		if w[0] != '-' and w[-2:] in ('.o', '.a'):			w = os.path.join(e, w)		files.append(w)	return filescc_flags = ['-I', '-D', '-U']cc_exts = ['.c', '.C', '.cc', '.c++']def treatword(w):	if w[:2] in cc_flags:		return None	if w[:1] == '-':		return w # Assume loader flag	head, tail = os.path.split(w)	base, ext = os.path.splitext(tail)	if ext in cc_exts:		tail = base + '.o'		w = os.path.join(head, tail)	return wdef expandvars(str, vars):	i = 0	while i < len(str):		i = k = string.find(str, '$', i)		if i < 0:			break		i = i+1		var = str[i:i+1]		i = i+1		if var == '(':			j = string.find(str, ')', i)			if j < 0:				break			var = str[i:j]			i = j+1		if vars.has_key(var):			str = str[:k] + vars[var] + str[i:]			i = k	return str

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -