plugger.py
changeset 96 0c06f7874a3f
parent 86 f0a9d74e3b26
child 97 9c6fdf60ad2e
equal deleted inserted replaced
95:646a44a12e2a 96:0c06f7874a3f
   784         plc_file.write(open(self._getIECgeneratedcodepath(), "r").read())
   784         plc_file.write(open(self._getIECgeneratedcodepath(), "r").read())
   785         plc_file.close()
   785         plc_file.close()
   786         logger.write("Compiling IEC Program in to C code...\n")
   786         logger.write("Compiling IEC Program in to C code...\n")
   787         # Now compile IEC code into many C files
   787         # Now compile IEC code into many C files
   788         # files are listed to stdout, and errors to stderr. 
   788         # files are listed to stdout, and errors to stderr. 
   789         status, result, err_result = logger.LogCommand("%s %s -I %s %s"%(iec2c_path, self._getIECcodepath(), ieclib_path, buildpath), no_stdout=True)
   789         status, result, err_result = logger.LogCommand("%s \"%s\" -I \"%s\" \"%s\""%(iec2c_path, self._getIECcodepath(), ieclib_path, buildpath), no_stdout=True)
   790         if status:
   790         if status:
   791             # Failed !
   791             # Failed !
   792             logger.write_error("Error : IEC to C compiler returned %d\n"%status)
   792             logger.write_error("Error : IEC to C compiler returned %d\n"%status)
   793             return False
   793             return False
   794         # Now extract C files of stdout
   794         # Now extract C files of stdout
   822         # Keep track of generated C files for later use by self.PlugGenerate_C
   822         # Keep track of generated C files for later use by self.PlugGenerate_C
   823         self.PLCGeneratedCFiles = C_files
   823         self.PLCGeneratedCFiles = C_files
   824         # Keep track of generated located variables for later use by self._Generate_C
   824         # Keep track of generated located variables for later use by self._Generate_C
   825         self.PLCGeneratedLocatedVars = locations
   825         self.PLCGeneratedLocatedVars = locations
   826         # compute CFLAGS for plc
   826         # compute CFLAGS for plc
   827         self.CFLAGS = "-I"+ieclib_path
   827         self.CFLAGS = "\"-I"+ieclib_path+"\""
   828         return True
   828         return True
   829 
   829 
   830     def _build(self, logger):
   830     def _build(self, logger):
   831         """
   831         """
   832         Method called by user to (re)build SoftPLC and plugin tree
   832         Method called by user to (re)build SoftPLC and plugin tree
   904                 bn = os.path.basename(CFile)
   904                 bn = os.path.basename(CFile)
   905                 obn = os.path.splitext(bn)[0]+".o"
   905                 obn = os.path.splitext(bn)[0]+".o"
   906                 obns.append(obn)
   906                 obns.append(obn)
   907                 logger.write("   [CC]  "+bn+" -> "+obn+"\n")
   907                 logger.write("   [CC]  "+bn+" -> "+obn+"\n")
   908                 objectfilename = os.path.splitext(CFile)[0]+".o"
   908                 objectfilename = os.path.splitext(CFile)[0]+".o"
   909                 status, result, err_result = logger.LogCommand("%s -c %s -o %s %s %s"%(compiler, CFile, objectfilename, _CFLAGS, CFLAGS))
   909                 status, result, err_result = logger.LogCommand("\"%s\" -c \"%s\" -o \"%s\" %s %s"%(compiler, CFile, objectfilename, _CFLAGS, CFLAGS))
   910                 if status != 0:
   910                 if status != 0:
   911                     logger.write_error("Build failed\n")
   911                     logger.write_error("Build failed\n")
   912                     return False
   912                     return False
   913                 objs.append(objectfilename)
   913                 objs.append(objectfilename)
   914         # Link all the object files into one executable
   914         # Link all the object files into one executable
   916         exe = self.GetProjectName()
   916         exe = self.GetProjectName()
   917         if target_name == "Win32":
   917         if target_name == "Win32":
   918             exe += ".exe"
   918             exe += ".exe"
   919         exe_path = os.path.join(buildpath, exe)
   919         exe_path = os.path.join(buildpath, exe)
   920         logger.write("   [CC]  " + ' '.join(obns)+" -> " + exe + "\n")
   920         logger.write("   [CC]  " + ' '.join(obns)+" -> " + exe + "\n")
   921         status, result, err_result = logger.LogCommand("%s %s -o %s %s"%(linker, " ".join(objs), exe_path, ' '.join(LDFLAGS+[_LDFLAGS])))
   921         status, result, err_result = logger.LogCommand("\"%s\" \"%s\" -o \"%s\" %s"%(linker, '" "'.join(objs), exe_path, ' '.join(LDFLAGS+[_LDFLAGS])))
   922         if status != 0:
   922         if status != 0:
   923             logger.write_error("Build failed\n")
   923             logger.write_error("Build failed\n")
   924             return False
   924             return False
   925         
   925         
   926         
   926