@@ -39,6 +39,7 @@ class BuildData
39
39
{
40
40
public BuildDataInputFile [ ] scenes ;
41
41
public BuildDataInputFile [ ] inputFiles ;
42
+ public BuildDataInputFile activeBuildProfile ;
42
43
public string [ ] enabledModules ;
43
44
public string [ ] resourcePaths ;
44
45
public BuildOptions buildOptions ;
@@ -54,6 +55,7 @@ class BuildData
54
55
55
56
private BuildData buildData ;
56
57
private string [ ] scenes ;
58
+ private NPath activeBuildProfilePath ;
57
59
public BuildOptions buildOptions ;
58
60
59
61
bool CheckAssetDirty ( BuildDataInputFile file )
@@ -135,12 +137,18 @@ bool DoCheckDirty()
135
137
return true ;
136
138
}
137
139
140
+ if ( ( activeBuildProfilePath != buildData . activeBuildProfile . path ) || ( ! string . IsNullOrEmpty ( buildData . activeBuildProfile . path ) && CheckAssetDirty ( buildData . activeBuildProfile ) ) )
141
+ {
142
+ Console . WriteLine ( $ "Rebuilding Data files because the active build profile have changed") ;
143
+ return true ;
144
+ }
145
+
138
146
Console . WriteLine ( "Not rebuilding Data files -- no changes" ) ;
139
147
return false ;
140
148
}
141
149
142
150
[ RequiredByNativeCode ]
143
- static public void WriteBuildData ( string buildDataPath , BuildReport report , string [ ] scenes , string [ ] prefabs )
151
+ static public void WriteBuildData ( string buildDataPath , BuildReport report , string [ ] scenes , string [ ] prefabs , string activeBuildProfilePath )
144
152
{
145
153
var developmentBuild = report . summary . options . HasFlag ( BuildOptions . Development ) ;
146
154
var inputScenes = new List < BuildDataInputFile > ( ) ;
@@ -164,6 +172,7 @@ static public void WriteBuildData(string buildDataPath, BuildReport report, stri
164
172
{
165
173
scenes = inputScenes . ToArray ( ) ,
166
174
inputFiles = inputFiles . ToArray ( ) ,
175
+ activeBuildProfile = new BuildDataInputFile ( activeBuildProfilePath , developmentBuild ) ,
167
176
buildOptions = report . summary . options & BuildData . BuildOptionsMask ,
168
177
unityVersion = Application . unityVersion ,
169
178
resourcePaths = ResourcesAPIInternal . GetAllPaths ( "" ) . OrderBy ( p => p ) . ToArray ( ) ,
@@ -175,7 +184,7 @@ static public void WriteBuildData(string buildDataPath, BuildReport report, stri
175
184
}
176
185
177
186
[ RequiredByNativeCode ]
178
- static public bool CheckDirty ( string buildDataPath , BuildOptions buildOptions , string [ ] scenes )
187
+ static public bool CheckDirty ( string buildDataPath , BuildOptions buildOptions , string [ ] scenes , string activeBuildProfilePath )
179
188
{
180
189
NPath buildReportPath = buildDataPath ;
181
190
if ( ! buildReportPath . FileExists ( ) )
@@ -187,6 +196,7 @@ static public bool CheckDirty(string buildDataPath, BuildOptions buildOptions, s
187
196
{
188
197
buildData = JsonUtility . FromJson < BuildData > ( buildReportPath . ReadAllText ( ) ) ,
189
198
scenes = scenes ,
199
+ activeBuildProfilePath = activeBuildProfilePath ,
190
200
buildOptions = buildOptions
191
201
} ;
192
202
return tracker . DoCheckDirty ( ) ;
0 commit comments