aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java
diff options
context:
space:
mode:
authorGravatar Rumou Duan <rduan@google.com>2017-02-21 21:21:49 +0000
committerGravatar Irina Iancu <elenairina@google.com>2017-02-22 08:28:12 +0000
commit7463237970f82ace1864f461034d8570fba647f2 (patch)
treeec7e10e622ab5a5051ea7169c8a79af22bc807e7 /src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java
parent34f47c81fc82bc9c6bd5f24c212d31555fe96bc9 (diff)
Crosstool compilation support for J2ObjcAspect.
Note that I also have to make some changes to cpp files to add the ability to specify a suffix for linked artifacts. This helps to avoid an artifact conflict between proto_library and J2ObjcAspect acting on proto_library, where both will create an archive file. J2ObjcAspect will simply generate a "_j2objc.a" archive instead of ".a" archive. -- PiperOrigin-RevId: 148135630 MOS_MIGRATED_REVID=148135630
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java
index b22a7ec94c..d3c4805f8e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java
@@ -66,15 +66,18 @@ 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.DottedVersion;
import com.google.devtools.build.lib.rules.apple.Platform;
+import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider;
import com.google.devtools.build.lib.rules.cpp.CppCompileAction.DotdFile;
import com.google.devtools.build.lib.rules.cpp.CppFileTypes;
import com.google.devtools.build.lib.rules.cpp.CppModuleMap;
+import com.google.devtools.build.lib.rules.cpp.FdoSupportProvider;
import com.google.devtools.build.lib.util.FileTypeSet;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.List;
import java.util.Map.Entry;
+import javax.annotation.Nullable;
/**
* Constructs command lines for objc compilation, archiving, and linking. Uses hard-coded
@@ -157,7 +160,8 @@ public class LegacyCompilationSupport extends CompilationSupport {
@Override
CompilationSupport registerCompileAndArchiveActions(
CompilationArtifacts compilationArtifacts, ObjcProvider objcProvider,
- ExtraCompileArgs extraCompileArgs, Iterable<PathFragment> priorityHeaders) {
+ ExtraCompileArgs extraCompileArgs, Iterable<PathFragment> priorityHeaders,
+ @Nullable CcToolchainProvider ccToolchain, @Nullable FdoSupportProvider fdoSupport) {
registerGenerateModuleMapAction(compilationArtifacts);
Optional<CppModuleMap> moduleMap;
if (objcConfiguration.moduleMapsEnabled()) {
@@ -606,7 +610,8 @@ public class LegacyCompilationSupport extends CompilationSupport {
@Override
protected CompilationSupport registerFullyLinkAction(
- ObjcProvider objcProvider, Iterable<Artifact> inputArtifacts, Artifact outputArchive) {
+ ObjcProvider objcProvider, Iterable<Artifact> inputArtifacts, Artifact outputArchive,
+ @Nullable CcToolchainProvider ccToolchain, @Nullable FdoSupportProvider fdoSupport) {
ruleContext.registerAction(
ObjcRuleClasses.spawnAppleEnvActionBuilder(
appleConfiguration, appleConfiguration.getSingleArchPlatform())