@@ -39,6 +39,7 @@ class BuildData
3939 {
4040 public BuildDataInputFile [ ] scenes ;
4141 public BuildDataInputFile [ ] inputFiles ;
42+ public BuildDataInputFile activeBuildProfile ;
4243 public string [ ] enabledModules ;
4344 public string [ ] resourcePaths ;
4445 public BuildOptions buildOptions ;
@@ -54,6 +55,7 @@ class BuildData
5455
5556 private BuildData buildData ;
5657 private string [ ] scenes ;
58+ private NPath activeBuildProfilePath ;
5759 public BuildOptions buildOptions ;
5860
5961 bool CheckAssetDirty ( BuildDataInputFile file )
@@ -135,12 +137,18 @@ bool DoCheckDirty()
135137 return true ;
136138 }
137139
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+
138146 Console . WriteLine ( "Not rebuilding Data files -- no changes" ) ;
139147 return false ;
140148 }
141149
142150 [ 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 )
144152 {
145153 var developmentBuild = report . summary . options . HasFlag ( BuildOptions . Development ) ;
146154 var inputScenes = new List < BuildDataInputFile > ( ) ;
@@ -164,6 +172,7 @@ static public void WriteBuildData(string buildDataPath, BuildReport report, stri
164172 {
165173 scenes = inputScenes . ToArray ( ) ,
166174 inputFiles = inputFiles . ToArray ( ) ,
175+ activeBuildProfile = new BuildDataInputFile ( activeBuildProfilePath , developmentBuild ) ,
167176 buildOptions = report . summary . options & BuildData . BuildOptionsMask ,
168177 unityVersion = Application . unityVersion ,
169178 resourcePaths = ResourcesAPIInternal . GetAllPaths ( "" ) . OrderBy ( p => p ) . ToArray ( ) ,
@@ -175,7 +184,7 @@ static public void WriteBuildData(string buildDataPath, BuildReport report, stri
175184 }
176185
177186 [ 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 )
179188 {
180189 NPath buildReportPath = buildDataPath ;
181190 if ( ! buildReportPath . FileExists ( ) )
@@ -187,6 +196,7 @@ static public bool CheckDirty(string buildDataPath, BuildOptions buildOptions, s
187196 {
188197 buildData = JsonUtility . FromJson < BuildData > ( buildReportPath . ReadAllText ( ) ) ,
189198 scenes = scenes ,
199+ activeBuildProfilePath = activeBuildProfilePath ,
190200 buildOptions = buildOptions
191201 } ;
192202 return tracker . DoCheckDirty ( ) ;
0 commit comments