targets/Xenomai/__init__.py
author Edouard Tisserant
Fri, 19 Jun 2015 21:36:35 +0200
changeset 1465 9011e2ceea85
parent 1323 a2b1af39385c
child 1511 91538d0c242c
permissions -rwxr-xr-x
Fixed win32 runtime crashing when attempting to log before errors before PLC start. Added pictures to wxHMI and fixed it so that it loads on windows as well
642
cd7ccbbbf471 various cleanups in /targets
Edouard Tisserant
parents: 635
diff changeset
     1
from ..toolchain_gcc import toolchain_gcc
321
5a4e6278a18b Adding support for Xenomai targets.
lbessard
parents: 203
diff changeset
     2
5a4e6278a18b Adding support for Xenomai targets.
lbessard
parents: 203
diff changeset
     3
class Xenomai_target(toolchain_gcc):
1279
0eb9f8af479f Added 'dlopen_prefix' class attributes to targets, in order to handle dlopen of shared object passed to runtime as extra file, and then in PWD (was working with windows only)
Edouard Tisserant
parents: 726
diff changeset
     4
    dlopen_prefix = "./"
321
5a4e6278a18b Adding support for Xenomai targets.
lbessard
parents: 203
diff changeset
     5
    extension = ".so"
633
70c84e6ff92c Xenomai build now ignores xeno-config if not set
Edouard Tisserant
parents: 615
diff changeset
     6
    def getXenoConfig(self, flagsname):
321
5a4e6278a18b Adding support for Xenomai targets.
lbessard
parents: 203
diff changeset
     7
        """ Get xeno-config from target parameters """
1323
a2b1af39385c Fixed Xenomai target according to new xmlclass
Laurent Bessard
parents: 1279
diff changeset
     8
        xeno_config=self.CTRInstance.GetTarget().getcontent().getXenoConfig()
633
70c84e6ff92c Xenomai build now ignores xeno-config if not set
Edouard Tisserant
parents: 615
diff changeset
     9
        if xeno_config:
726
ae63ccc29444 refactoring
Edouard Tisserant
parents: 725
diff changeset
    10
            from util.ProcessLogger import ProcessLogger
725
31dade089db5 refactoring
Edouard Tisserant
parents: 722
diff changeset
    11
            status, result, err_result = ProcessLogger(self.CTRInstance.logger,
633
70c84e6ff92c Xenomai build now ignores xeno-config if not set
Edouard Tisserant
parents: 615
diff changeset
    12
                                                       xeno_config + " --skin=native --"+flagsname,
70c84e6ff92c Xenomai build now ignores xeno-config if not set
Edouard Tisserant
parents: 615
diff changeset
    13
                                                       no_stdout=True).spin()
70c84e6ff92c Xenomai build now ignores xeno-config if not set
Edouard Tisserant
parents: 615
diff changeset
    14
            if status:
725
31dade089db5 refactoring
Edouard Tisserant
parents: 722
diff changeset
    15
                self.CTRInstance.logger.write_error(_("Unable to get Xenomai's %s \n")%flagsname)
633
70c84e6ff92c Xenomai build now ignores xeno-config if not set
Edouard Tisserant
parents: 615
diff changeset
    16
            return [result.strip()]
70c84e6ff92c Xenomai build now ignores xeno-config if not set
Edouard Tisserant
parents: 615
diff changeset
    17
        return []
321
5a4e6278a18b Adding support for Xenomai targets.
lbessard
parents: 203
diff changeset
    18
    
5a4e6278a18b Adding support for Xenomai targets.
lbessard
parents: 203
diff changeset
    19
    def getBuilderLDFLAGS(self):
633
70c84e6ff92c Xenomai build now ignores xeno-config if not set
Edouard Tisserant
parents: 615
diff changeset
    20
        xeno_ldflags = self.getXenoConfig("ldflags")
634
5b925a1d8fed fixed redondant ldflag and a typo in xenomai build
Edouard Tisserant
parents: 633
diff changeset
    21
        return toolchain_gcc.getBuilderLDFLAGS(self) + xeno_ldflags + ["-shared"]
321
5a4e6278a18b Adding support for Xenomai targets.
lbessard
parents: 203
diff changeset
    22
5a4e6278a18b Adding support for Xenomai targets.
lbessard
parents: 203
diff changeset
    23
    def getBuilderCFLAGS(self):
633
70c84e6ff92c Xenomai build now ignores xeno-config if not set
Edouard Tisserant
parents: 615
diff changeset
    24
        xeno_cflags = self.getXenoConfig("cflags")
635
fcdb60cacb2c added -fPIC to satisfy X86_64 build
Edouard Tisserant
parents: 634
diff changeset
    25
        return toolchain_gcc.getBuilderCFLAGS(self) + xeno_cflags + ["-fPIC"]
321
5a4e6278a18b Adding support for Xenomai targets.
lbessard
parents: 203
diff changeset
    26