@@ -289,6 +289,7 @@ class swift::ParseableInterfaceBuilder {
289
289
const StringRef prebuiltCachePath;
290
290
const bool serializeDependencyHashes;
291
291
const bool trackSystemDependencies;
292
+ const bool remarkOnRebuildFromInterface;
292
293
const SourceLoc diagnosticLoc;
293
294
DependencyTracker *const dependencyTracker;
294
295
CompilerInvocation subInvocation;
@@ -350,7 +351,12 @@ class swift::ParseableInterfaceBuilder {
350
351
// Tell the subinvocation to serialize dependency hashes if asked to do so.
351
352
auto &frontendOpts = subInvocation.getFrontendOptions ();
352
353
frontendOpts.SerializeModuleInterfaceDependencyHashes =
353
- serializeDependencyHashes;
354
+ serializeDependencyHashes;
355
+
356
+ // Tell the subinvocation to remark on rebuilds from an interface if asked
357
+ // to do so.
358
+ frontendOpts.RemarkOnRebuildFromModuleInterface =
359
+ remarkOnRebuildFromInterface;
354
360
}
355
361
356
362
bool extractSwiftInterfaceVersionAndArgs (
@@ -473,13 +479,15 @@ class swift::ParseableInterfaceBuilder {
473
479
StringRef prebuiltCachePath,
474
480
bool serializeDependencyHashes = false ,
475
481
bool trackSystemDependencies = false ,
482
+ bool remarkOnRebuildFromInterface = false ,
476
483
SourceLoc diagnosticLoc = SourceLoc(),
477
484
DependencyTracker *tracker = nullptr )
478
485
: ctx(ctx), fs(*ctx.SourceMgr.getFileSystem()), diags(ctx.Diags),
479
486
interfacePath (interfacePath), moduleName(moduleName),
480
487
moduleCachePath(moduleCachePath), prebuiltCachePath(prebuiltCachePath),
481
488
serializeDependencyHashes(serializeDependencyHashes),
482
489
trackSystemDependencies(trackSystemDependencies),
490
+ remarkOnRebuildFromInterface(remarkOnRebuildFromInterface),
483
491
diagnosticLoc(diagnosticLoc), dependencyTracker(tracker) {
484
492
configureSubInvocation ();
485
493
}
@@ -1230,7 +1238,7 @@ class ParseableInterfaceModuleLoaderImpl {
1230
1238
ParseableInterfaceBuilder builder (
1231
1239
ctx, interfacePath, moduleName, cacheDir, prebuiltCacheDir,
1232
1240
/* serializeDependencyHashes*/ false , trackSystemDependencies,
1233
- diagnosticLoc, dependencyTracker);
1241
+ remarkOnRebuildFromInterface, diagnosticLoc, dependencyTracker);
1234
1242
auto &subInvocation = builder.getSubInvocation ();
1235
1243
1236
1244
// Compute the output path if we're loading or emitting a cached module.
@@ -1367,11 +1375,13 @@ std::error_code ParseableInterfaceModuleLoader::findModuleFilesInDirectory(
1367
1375
bool ParseableInterfaceModuleLoader::buildSwiftModuleFromSwiftInterface (
1368
1376
ASTContext &Ctx, StringRef CacheDir, StringRef PrebuiltCacheDir,
1369
1377
StringRef ModuleName, StringRef InPath, StringRef OutPath,
1370
- bool SerializeDependencyHashes, bool TrackSystemDependencies) {
1378
+ bool SerializeDependencyHashes, bool TrackSystemDependencies,
1379
+ bool RemarkOnRebuildFromInterface) {
1371
1380
ParseableInterfaceBuilder builder (Ctx, InPath, ModuleName,
1372
1381
CacheDir, PrebuiltCacheDir,
1373
1382
SerializeDependencyHashes,
1374
- TrackSystemDependencies);
1383
+ TrackSystemDependencies,
1384
+ RemarkOnRebuildFromInterface);
1375
1385
// FIXME: We really only want to serialize 'important' dependencies here, if
1376
1386
// we want to ship the built swiftmodules to another machine.
1377
1387
return builder.buildSwiftModule (OutPath, /* shouldSerializeDeps*/ true ,
0 commit comments