mirror of https://github.com/axmolengine/axmol.git
58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
import sys, string, os
|
|
from xml.etree import ElementTree as ET
|
|
from xml.dom import minidom
|
|
|
|
classPathFile = sys.argv[1]
|
|
pluginStr = sys.argv[2]
|
|
pluginsDir = sys.argv[3]
|
|
|
|
def getLibElement(pathAttr):
|
|
ret = ET.Element('classpathentry')
|
|
ret.set('exported', 'true')
|
|
ret.set('kind', 'lib')
|
|
ret.set('path', pathAttr)
|
|
return ret
|
|
|
|
def fomatTree(elem):
|
|
root_str = ET.tostring(elem, 'UTF-8')
|
|
reparse = minidom.parseString(root_str)
|
|
return reparse
|
|
|
|
tree = ET.parse(classPathFile)
|
|
root = tree.getroot()
|
|
entryNodes = root.findall('classpathentry')
|
|
linkedLibs = []
|
|
for node in entryNodes:
|
|
entryKind = node.get('kind')
|
|
entryPath = node.get('path')
|
|
entryKind = entryKind.strip(' \n\r\t')
|
|
entryPath = entryPath.strip(' \n\r\t')
|
|
if entryKind == 'lib' and entryPath.endswith('.jar'):
|
|
linkedLibs.append(entryPath)
|
|
|
|
plugins = pluginStr.split(':')
|
|
modified = False
|
|
for pluginName in plugins:
|
|
pluginAndroidDir = pluginsDir + '/' + pluginName + '/android'
|
|
|
|
for fileName in os.listdir(pluginAndroidDir):
|
|
if os.path.splitext(fileName)[1] == '.jar':
|
|
needAdd = True
|
|
for linkedJar in linkedLibs:
|
|
jarName = os.path.basename(linkedJar)
|
|
if fileName == jarName:
|
|
needAdd = False
|
|
break
|
|
|
|
if needAdd:
|
|
modified = True
|
|
pathAttr = 'plugin-x/' + pluginName + '/android/' + fileName
|
|
root.append(getLibElement(pathAttr))
|
|
linkedLibs.append(pathAttr)
|
|
|
|
if modified:
|
|
f = open(classPathFile, 'w')
|
|
fomatDom = fomatTree(root)
|
|
fomatDom.writexml(f, '', '\t', '\n', 'UTF-8')
|
|
f.close()
|