From afc1dab1026f7cb3bac36d60180a5fb5295ff713 Mon Sep 17 00:00:00 2001 From: Federico Felici <federico.felici@epfl.ch> Date: Sat, 30 Nov 2019 17:41:28 +0100 Subject: [PATCH] Try catch to clear build folder and retry if build failure --- code/classes/SCDclass_expcode.m | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/code/classes/SCDclass_expcode.m b/code/classes/SCDclass_expcode.m index 6d34fc7..8e7a03f 100644 --- a/code/classes/SCDclass_expcode.m +++ b/code/classes/SCDclass_expcode.m @@ -168,6 +168,14 @@ classdef SCDclass_expcode node.wrapdatadicts{iwrap} = sprintf('SCDwrap_template%02d%02d.sldd',nodenr,iwrap); end end + + function build_nodes(compileslx_list) + for mynodeslx = compileslx_list + fprintf(' *** Buiding Node %s ***\n',mynodeslx{1}); + rtwbuild(mynodeslx{1}); + end + end + end methods @@ -563,7 +571,7 @@ classdef SCDclass_expcode nodeinfo=obj.(sprintf('node%02d',inode)); for icpu = 1:nodeinfo.ncpu if nodeinfo.cpuactive(icpu) - compileslx_list = [compileslx_list; + compileslx_list = [compileslx_list,... sprintf('SCD_rtccode_%02d_%02d',inode,icpu)]; %#ok<AGROW> end end @@ -588,15 +596,19 @@ classdef SCDclass_expcode % set configuration settings for compilation SCDconf_setCODEconf('configurationSettingsCODEicc') - - % Build - for mynodeslx = compileslx_list - fprintf(' *** Buiding Node %s ***\n',mynodeslx{1}); - rtwbuild(mynodeslx{1}); - end - + try + SCDclass_expcode.build_nodes(compileslx_list); + catch ME + % if fails on first attempt, clear build folder and retry + fprintf(' **** FIRST ATTEMPT BUILDING %s FAILED **** \n',obj.name) + fprintf(' Error message:\n %s\n',getReport(ME)); + fprintf(' Try again clearning build folder\n') + + system(sprintf('rm -rf %s/*',CodeGenFolder)); + SCDclass_expcode.build_nodes(compileslx_list); + end end end -- GitLab