diff options
| author | Stijn Kuipers <stijnkuipers@gmail.com> | 2023-06-29 16:26:07 +0200 |
|---|---|---|
| committer | Stijn Kuipers <stijnkuipers@gmail.com> | 2023-06-29 16:26:07 +0200 |
| commit | fb5a321dd7c2848128b04b306f3e1e59c87a3f70 (patch) | |
| tree | a8ef6273f9f331ebb1971a9baf20a8c897955612 /sw/ideScripts/update.py | |
| parent | bae7568fd4dd0676b370be8548c7ec95d6521ba1 (diff) | |
| download | plinky-fb5a321dd7c2848128b04b306f3e1e59c87a3f70.tar.gz | |
Initial Filedump
Tadaaa!!
Diffstat (limited to 'sw/ideScripts/update.py')
| -rwxr-xr-x | sw/ideScripts/update.py | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/sw/ideScripts/update.py b/sw/ideScripts/update.py new file mode 100755 index 0000000..5af3760 --- /dev/null +++ b/sw/ideScripts/update.py @@ -0,0 +1,103 @@ +''' +This script runs all other updateXxx.py scripts. +It should be called once CubeMX project was generated/re-generated or user settings were modified. + +- add 'print-variable' capabilities to Makefile +- update/generate 'c_cpp_properties.json' +- update/generate 'buildData.json' and 'toolsPaths.json' +- update/generate 'tasks.json' +- update/generate 'launch.json' +''' +import sys +import time +import traceback + +import updateWorkspaceFile as workspaceFile +import updateLaunchConfig as launch +import updateTasks as tasks +import updateBuildData as build +import updateMakefile as mkf +import updateWorkspaceSources as wks +import updatePaths as pth +import utilities as utils + +__version__ = utils.__version__ + +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] + gccExePath = buildData[bData.bStr.gccExePath] + makefileData = makefile.getMakefileData(makeExePath, gccExePath) + + # create/update 'c_cpp_properties.json' + cP.checkCPropertiesFile() + cPropertiesData = cP.getCPropertiesData() + cPropertiesData = cP.addMakefileDataToCPropertiesFile(cPropertiesData, makefileData) + cPropertiesData = cP.addBuildDataToCPropertiesFile(cPropertiesData, buildData) + cPropertiesData = cP.addCustomDataToCPropertiesFile(cPropertiesData, makefileData, buildData) + cP.overwriteCPropertiesFile(cPropertiesData) + + # update Makefile + makefile.createNewMakefile() + makefileData = makefile.getMakefileData(makeExePath, gccExePath) # get data from new Makefile + + # update buildData.json + buildData = bData.addMakefileDataToBuildDataFile(buildData, makefileData) + buildData = bData.addCubeMxProjectPathToBuildData(buildData) + bData.overwriteBuildDataFile(buildData) + + # create build folder + buildFolderName = makefileData[mkf.MakefileStrings.buildDir] + utils.createBuildFolder(buildFolderName) + + # update tasks + tasks.checkTasksFile() + tasksData = tasks.getTasksData() + tasksData = tasks.addAllTasks(tasksData) + tasks.overwriteTasksFile(tasksData) + + # update launch configurations + launch.checkLaunchFile() + launchData = launch.getLaunchData() + launchData = launch.addAllLaunchConfigurations(launchData) + launch.overwriteLaunchFile(launchData) + + # update workspace file with "cortex-debug" specifics + wksFile.checkWorkspaceFile() + wksData = wksFile.getWorkspaceFileData() + wksData = wksFile.addBuildDataToWorkspaceFile(wksData, buildData) + wksFile.overwriteWorkspaceFile(wksData) + + except Exception as err: + status = "ERROR" + errorMsg = "Unexpected error occured during 'Update' procedure. Exception:\n" + traceback.format_exc() + + overallTime = int(time.time() - startTime) + msg = "\n" + status + " (" + str(overallTime) + " seconds).\n" + errorMsg + print(msg) |
