-
Notifications
You must be signed in to change notification settings - Fork 2
/
project.py
23 lines (22 loc) · 926 Bytes
/
project.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from xml.etree import ElementTree
from subprocess import call
class LazarusProject:
def __init__(self, lpiFile):
self.lpiFile = lpiFile
self.tree = ElementTree.parse(lpiFile)
def build(self, lazbuild, mode=None):
callArgs = [str(lazbuild.resolve())]
if mode is not None:
callArgs.append(f"--build-mode={mode}")
callArgs.append(str(self.lpiFile.resolve()))
return call(callArgs) == 0
def getModes(self):
optNode = self.tree.getroot().find("ProjectOptions")
modeNode = optNode.find("BuildModes")
return [item.attrib["Name"] for item in modeNode if item.tag.startswith("Item")]
def getDependencies(self):
optNode = self.tree.getroot().find("ProjectOptions")
reqNode = optNode.find("RequiredPackages")
if reqNode is None:
return []
return [item[0].attrib["Value"] for item in reqNode]