-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuildfile.m
More file actions
81 lines (63 loc) · 2.79 KB
/
Copy pathbuildfile.m
File metadata and controls
81 lines (63 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
function plan = buildfile
import matlab.buildtool.tasks.*
% Extract tasks from local functions
plan = buildplan(localfunctions);
% CodeIssues task
plan("check") = CodeIssuesTask(Results=["results/codeissues.sarif"; ...
"results/codeissues.mat"]);
% Test task
tTask = TestTask("tests", ...
SourceFiles = "code", ...
IncludeSubfolders = true,...
TestResults = fullfile("results","tests","index.html"),...
RunOnlyImpactedTests=true);
tTaskWithMatlabTest = tTask.addCodeCoverage( ...
fullfile("results","coverage","index.html"), ...
MetricLevel = "condition"); % Note: Change MetricLevel to "statement"
% if you do not have MATLAB Test
plan("test") = tTaskWithMatlabTest;
% Clean task
plan("clean") = CleanTask();
% Define dependencies
plan("compile").Dependencies = "test";
plan("test").Dependencies = "generateSimFun";
plan("generateSimFun").Dependencies = "check";
plan("check").Dependencies = "generateMDguide";
% Define inputs and outputs
proj = currentProject;
plan("generateSimFun").Inputs = fullfile(proj.RootFolder,"code","*.sbproj");
plan("generateSimFun").Outputs = fullfile(proj.RootFolder,"code","simFunction_Dose.mat");
plan("generateMDguide").Inputs = fullfile(proj.RootFolder,"WorkshopGuide.m");
plan("test").Inputs = fullfile(proj.RootFolder,"code","*");
plan("compile").Inputs = fullfile(proj.RootFolder,"code",["simFunction_Dose.mat","*.mlapp","*.m"]);
plan("compile").Outputs = fullfile(proj.RootFolder,"WebAppArchive");
% Set default task
plan.DefaultTasks = "test";
end
function generateMDguideTask(~)
proj = currentProject;
export("WorkshopGuide.m",fullfile(proj.RootFolder,"WorkshopGuide.md"));
end
function generateSimFunTask(~)
% Generate SimFunction and associated MAT file for app to run
generateSimFun();
end
function compileTask(~)
% Compile App into Web App
proj = currentProject;
rootFolder = proj.RootFolder; % Get the root folder of the project
imgFiles = dir(fullfile(rootFolder,"code","images","*.*"));
imgFiles = string({imgFiles.name}');
imgFiles = fullfile(rootFolder,"code","images",imgFiles(~matches(imgFiles,[".",".."])));
codeFiles = dir(fullfile(rootFolder,"code","*.m"));
codeFiles = string({codeFiles.name}');
codeFiles = fullfile(rootFolder,"code",setdiff(codeFiles,"generateSimFun.m"));
MATfilename = dir(fullfile(rootFolder,"code","simFunction_Dose.mat"));
MATfilename = fullfile(rootFolder,"code",MATfilename.name);
s = load(MATfilename,"dependenciesSimFun");
appDependencies = [MATfilename; s.dependenciesSimFun; ...
codeFiles; imgFiles];
appfilename = fullfile(rootFolder,"code","TMDDApp.mlapp");
compiler.build.webAppArchive(appfilename,...
AdditionalFiles=appDependencies,OutputDir="WebAppArchive");
end