diff options
author | 2016-09-27 21:10:44 +0000 | |
---|---|---|
committer | 2016-09-28 08:28:05 +0000 | |
commit | ae3b6a93cd342d900e93a47efb9bbf0f1cd227f2 (patch) | |
tree | f51bc64abf594b253a9cc6144f9bea419819aa34 /src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java | |
parent | c5545fd0896f3c602a9be0986debed6f0c9c662d (diff) |
Implement input pruning using .d files in objc behind a flag that defaults to
false.
--
MOS_MIGRATED_REVID=134452391
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java index 7faa6a516d..77faa716d2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java @@ -83,6 +83,7 @@ import com.google.devtools.build.lib.rules.apple.AppleConfiguration; import com.google.devtools.build.lib.rules.apple.AppleToolchain; import com.google.devtools.build.lib.rules.apple.Platform; import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.cpp.CppCompileAction.DotdFile; import com.google.devtools.build.lib.rules.cpp.CppModuleMap; import com.google.devtools.build.lib.rules.cpp.CppModuleMapAction; import com.google.devtools.build.lib.rules.objc.XcodeProvider.Builder; @@ -655,19 +656,21 @@ public final class CompilationSupport { boolean runCodeCoverage = buildConfiguration.isCodeCoverageEnabled() && ObjcRuleClasses.isInstrumentable(sourceFile); boolean hasSwiftSources = compilationArtifacts.hasSwiftSources(); + DotdFile dotdFile = intermediateArtifacts.dotdFile(sourceFile); - CustomCommandLine commandLine = compileActionCommandLine( - sourceFile, - objFile, - objcProvider, - priorityHeaders, - moduleMap, - compilationArtifacts.getPchFile(), - Optional.of(intermediateArtifacts.dotdFile(sourceFile)), - otherFlags, - runCodeCoverage, - isCPlusPlusSource, - hasSwiftSources); + CustomCommandLine commandLine = + compileActionCommandLine( + sourceFile, + objFile, + objcProvider, + priorityHeaders, + moduleMap, + compilationArtifacts.getPchFile(), + Optional.of(dotdFile.artifact()), + otherFlags, + runCodeCoverage, + isCPlusPlusSource, + hasSwiftSources); Optional<Artifact> gcnoFile = Optional.absent(); if (runCodeCoverage && !buildConfiguration.isLLVMCoverageMapFormatEnabled()) { @@ -684,24 +687,26 @@ public final class CompilationSupport { moduleMapInputs = objcProvider.get(MODULE_MAP); } - // TODO(bazel-team): Remote private headers from inputs once they're added to the provider. + // TODO(bazel-team): Remove private headers from inputs once they're added to the provider. ruleContext.registerAction( - ObjcRuleClasses.spawnAppleEnvActionBuilder( + ObjcCompileAction.Builder.createObjcCompileActionBuilderWithAppleEnv( appleConfiguration, appleConfiguration.getSingleArchPlatform()) + .setDotdPruningPlan(objcConfiguration.getDotdPruningPlan()) + .setSourceFile(sourceFile) + .addMandatoryInputs(swiftHeader.asSet()) + .addTransitiveMandatoryInputs(moduleMapInputs) + .addTransitiveMandatoryInputs(objcProvider.get(STATIC_FRAMEWORK_FILE)) + .addTransitiveMandatoryInputs(objcProvider.get(DYNAMIC_FRAMEWORK_FILE)) + .setDotdFile(dotdFile) + .addInputs(compilationArtifacts.getPrivateHdrs()) + .addInputs(compilationArtifacts.getPchFile().asSet()) .setMnemonic("ObjcCompile") .setExecutable(xcrunwrapper(ruleContext)) .setCommandLine(commandLine) - .addInput(sourceFile) - .addInputs(swiftHeader.asSet()) - .addTransitiveInputs(moduleMapInputs) .addOutput(objFile) .addOutputs(gcnoFile.asSet()) - .addOutput(intermediateArtifacts.dotdFile(sourceFile)) + .addOutput(dotdFile.artifact()) .addTransitiveInputs(objcProvider.get(HEADER)) - .addInputs(compilationArtifacts.getPrivateHdrs()) - .addTransitiveInputs(objcProvider.get(STATIC_FRAMEWORK_FILE)) - .addTransitiveInputs(objcProvider.get(DYNAMIC_FRAMEWORK_FILE)) - .addInputs(compilationArtifacts.getPchFile().asSet()) .build(ruleContext)); } |