Beispiel #1
0
if sys.version_info[0] < 3:
    raise Exception("Python 3 or later is required")

########################################################################################################################
if __name__ == "__main__":
    startTime = time.time()
    print("Update started.\n")
    status = 'OK'
    errorMsg = ''
    try:
        utils.verifyFolderStructure()

        paths = pth.UpdatePaths()
        bData = build.BuildData()
        cP = wks.CProperties()
        makefile = mkf.Makefile()
        tasks = tasks.Tasks()
        launch = launch.LaunchConfigurations()
        wksFile = workspaceFile.UpdateWorkspaceFile()

        # Makefile must exist
        makefile.checkMakefileFile(
        )  # no point in continuing if Makefile does not exist
        makefile.restoreOriginalMakefile()

        # build data (update tools paths if neccessary)
        buildData = bData.prepareBuildData()

        # data from original makefile
        makeExePath = buildData[bData.bStr.buildToolsPath]
Beispiel #2
0
    def createNewMakefile(self):
        '''
        Merge existing Makefile data and user fields from existing 'c_cpp_properties.json.'
        '''
        cP = wks.CProperties()
        cPropertiesData = cP.getCPropertiesData()

        with open(utils.makefilePath, 'r') as makefile:
            data = makefile.readlines()

        # sources
        cSources = cP.getCPropertiesKeyData(cPropertiesData,
                                            self.cPStr.user_cSources)
        data = self.searchAndAppend(data, self.mkfStr.cSources, cSources)

        asmSources = cP.getCPropertiesKeyData(cPropertiesData,
                                              self.cPStr.user_asmSources)
        data = self.searchAndAppend(data, self.mkfStr.asmSources, asmSources)

        ldSources = cP.getCPropertiesKeyData(cPropertiesData,
                                             self.cPStr.user_ldSources)
        data = self.searchAndAppend(data,
                                    self.mkfStr.ldSources,
                                    ldSources,
                                    preappend='-l:')

        # includes
        cIncludes = cP.getCPropertiesKeyData(cPropertiesData,
                                             self.cPStr.user_cIncludes)
        data = self.searchAndAppend(data,
                                    self.mkfStr.cIncludes,
                                    cIncludes,
                                    preappend='-I')

        asmIncludes = cP.getCPropertiesKeyData(cPropertiesData,
                                               self.cPStr.user_asmIncludes)
        data = self.searchAndAppend(data,
                                    self.mkfStr.asmIncludes,
                                    asmIncludes,
                                    preappend='-I')

        ldIncludes = cP.getCPropertiesKeyData(cPropertiesData,
                                              self.cPStr.user_ldIncludes)
        data = self.searchAndAppend(data,
                                    self.mkfStr.ldIncludes,
                                    ldIncludes,
                                    preappend='-L')

        # defines
        cDefines = cP.getCPropertiesKeyData(cPropertiesData,
                                            self.cPStr.user_cDefines)
        data = self.searchAndAppend(data,
                                    self.mkfStr.cDefines,
                                    cDefines,
                                    preappend='-D')

        asmDefines = cP.getCPropertiesKeyData(cPropertiesData,
                                              self.cPStr.user_asmDefines)
        data = self.searchAndAppend(data,
                                    self.mkfStr.asmDefines,
                                    asmDefines,
                                    preappend='-D')

        # compiler flags
        cFlags = cP.getCPropertiesKeyData(cPropertiesData,
                                          self.cPStr.user_cFlags)
        data = self.searchAndAppend(data, self.mkfStr.cFlags, cFlags)

        asmFlags = cP.getCPropertiesKeyData(cPropertiesData,
                                            self.cPStr.user_asmFlags)
        data = self.searchAndAppend(data, self.mkfStr.asmFlags, asmFlags)

        ldFlags = cP.getCPropertiesKeyData(cPropertiesData,
                                           self.cPStr.user_ldFlags)
        data = self.searchAndAppend(data, self.mkfStr.ldFlags, ldFlags)

        data = self.replaceMakefileHeader(data)

        try:
            with open(utils.makefilePath, 'w') as makefile:
                for line in data:
                    makefile.write(line)
            print("New Makefile data succesfully written.")

        except Exception as err:
            errorMsg = "Exception error writing new data to Makefile:\n"
            errorMsg += str(err)
            utils.printAndQuit(errorMsg)