From 88668d6aa0b21b013a5b77b6567bfad9403cb644 Mon Sep 17 00:00:00 2001 From: Federico Felici <federico.felici@epfl.ch> Date: Sat, 30 Nov 2019 16:51:09 +0100 Subject: [PATCH] Cleanup build method --- code/classes/SCDclass_expcode.m | 41 +++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/code/classes/SCDclass_expcode.m b/code/classes/SCDclass_expcode.m index af5c764..6d34fc7 100644 --- a/code/classes/SCDclass_expcode.m +++ b/code/classes/SCDclass_expcode.m @@ -555,7 +555,26 @@ classdef SCDclass_expcode end function build(obj) - fprintf('\n=== Building %s ===',obj.name); + fprintf('\n=== Building %s ===\n',obj.name); + + % make list of nodes to compile + compileslx_list = cell(0); + for inode=1:8 + nodeinfo=obj.(sprintf('node%02d',inode)); + for icpu = 1:nodeinfo.ncpu + if nodeinfo.cpuactive(icpu) + compileslx_list = [compileslx_list; + sprintf('SCD_rtccode_%02d_%02d',inode,icpu)]; %#ok<AGROW> + end + end + end + + if isempty(compileslx_list) + fprintf('No active nodes found, no .slx to compile. Done\n'); + return + end + + % set CodeGen folder for this expcode (allows fast rebuilding) CodeGenFolder = fullfile(fileparts(mfilename('fullpath')),'gencodes',... sprintf('CodeGenFolder-%d',obj.maincode)); @@ -564,18 +583,20 @@ classdef SCDclass_expcode 'CodeGenFolder',CodeGenFolder,... 'createdir',true); + % check env variable assert(~isempty(getenv('RTCCODE_LIBPATH')),'RTCCODE_LIBPATH environment variable needs to be defined to compile'); + + % set configuration settings for compilation SCDconf_setCODEconf('configurationSettingsCODEicc') - for inode=1:8 - nodeinfo=obj.(sprintf('node%02d',inode)); - for icpu = 1:nodeinfo.ncpu - if nodeinfo.cpuactive(icpu) - cpuslxname = sprintf('SCD_rtccode_%02d_%02d',inode,icpu); - fprintf(' *** Buiding Node %s ***\n',cpuslxname); - rtwbuild(cpuslxname); - end - end + + + + % Build + for mynodeslx = compileslx_list + fprintf(' *** Buiding Node %s ***\n',mynodeslx{1}); + rtwbuild(mynodeslx{1}); end + end end -- GitLab