equal
deleted
inserted
replaced
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 |