beremiz

file isExecutable
Add Beremiz shortcuts in menu on linux platform
Add some dependencies to beremiz (simplejson, twisted, nevow ...)
import os, re, operator
from wxPopen import ProcessLogger
import hashlib, shutil
from toolchain_gcc import toolchain_gcc
includes_re = re.compile('\s*#include\s*["<]([^">]*)[">].*')
class toolchain_makefile(toolchain_gcc):
"""
This abstract class contains GCC specific code.
It cannot be used as this and should be inherited in a target specific
class such as target_linux or target_win32
"""
def build(self):
srcfiles= []
cflags = []
for Location, CFilesAndCFLAGS, DoCalls in self.PluginsRootInstance.LocationCFilesAndCFLAGS:
# Get CFiles list to give it to makefile
for CFile, CFLAGS in CFilesAndCFLAGS:
CFileName = os.path.basename(CFile)
srcfiles.append(CFileName)
if CFLAGS not in cflags:
cflags.append(CFLAGS)
beremizcommand = {"src": ' '.join(srcfiles),
"cflags": ' '.join(cflags)
}
target = self.getTarget().getcontent()["value"]
command = target.getCommand().split(' ') +\
[target.getBuildPath()] +\
[arg % beremizcommand for arg in target.getArguments().split(' ')] +\
target.getRule().split(' ')
# Call Makefile to build PLC code and link it with target specific code
status, result, err_result = ProcessLogger(self.PluginsRootInstance.logger,
command).spin()
if status :
self.PluginsRootInstance.logger.write_error(_("C compilation of %s failed.\n"))
return False
return True