Delete the implicit _fully_linked.a target from objc_library
PiperOrigin-RevId: 368016676
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 d669850..870279c 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
@@ -17,7 +17,6 @@
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet;
-import static com.google.devtools.build.lib.packages.ImplicitOutputsFunction.fromTemplates;
import static com.google.devtools.build.lib.rules.cpp.Link.LINK_LIBRARY_FILETYPES;
import static com.google.devtools.build.lib.rules.objc.ObjcProvider.DYNAMIC_FRAMEWORK_FILE;
import static com.google.devtools.build.lib.rules.objc.ObjcProvider.FORCE_LOAD_LIBRARY;
@@ -72,7 +71,6 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.packages.BuildType;
-import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplicitOutputsFunction;
import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode;
@@ -204,10 +202,6 @@
.withSourceAttributes("srcs", "non_arc_srcs", "hdrs")
.withDependencyAttributes("deps", "data", "binary", "xctest_app");
- /** Defines a library that contains the transitive closure of dependencies. */
- public static final SafeImplicitOutputsFunction FULLY_LINKED_LIB =
- fromTemplates("%{name}_fully_linked.a");
-
private static ImmutableList<String> pathsToIncludeArgs(Iterable<PathFragment> paths) {
ImmutableList.Builder<String> builder = ImmutableList.<String>builder();
for (PathFragment path : paths) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
index 1746b7c..c19ada1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
@@ -277,12 +277,8 @@
? new ExtraCompileArgs("-fno-strict-overflow", "-fobjc-arc-exceptions")
: new ExtraCompileArgs("-fno-strict-overflow", "-fobjc-weak");
- compilationSupport
- .registerCompileAndArchiveActions(
- common, extraCompileArgs, ImmutableList.<PathFragment>of())
- .registerFullyLinkAction(
- common.getObjcProvider(),
- ruleContext.getImplicitOutputArtifact(CompilationSupport.FULLY_LINKED_LIB));
+ compilationSupport.registerCompileAndArchiveActions(
+ common, extraCompileArgs, ImmutableList.<PathFragment>of());
ccCompilationContext = compilationSupport.getCcCompilationContext();
} catch (RuleErrorException e) {
ruleContext.ruleError(e.getMessage());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
index 95b0c6d..092ff62 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
@@ -91,9 +91,6 @@
.setIntermediateArtifacts(ObjcRuleClasses.intermediateArtifacts(ruleContext))
.doNotUsePch()
.build()
- .registerFullyLinkAction(
- objcProvider,
- ruleContext.getImplicitOutputArtifact(CompilationSupport.FULLY_LINKED_LIB))
.registerGenerateModuleMapAction(moduleMapCompilationArtifacts)
.validateAttributes();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryRule.java
index 75ccada..bf26910 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryRule.java
@@ -77,13 +77,6 @@
.allowedRuleClasses(
"j2objc_library", "java_library", "java_import", "java_proto_library")
.allowedFileTypes())
- /*<!-- #BLAZE_RULE(j2objc_library).IMPLICIT_OUTPUTS -->
- <ul>
- <li><code><var>name</var>_fully_linked.a</code>: A fully linked static library that
- contains the full transitive closure of transpiled dependencies.</li>
- </ul>
- <!-- #END_BLAZE_RULE.IMPLICIT_OUTPUTS -->*/
- .setImplicitOutputsFunction(CompilationSupport.FULLY_LINKED_LIB)
.cfg(AppleCrosstoolTransition.APPLE_CROSSTOOL_TRANSITION)
.addRequiredToolchains(CppRuleClasses.ccToolchainTypeAttribute(env))
.useToolchainTransition(ToolchainTransitionMode.ENABLED)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
index cbe134d..cfaf1f3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
@@ -80,9 +80,6 @@
compilationSupport
.registerCompileAndArchiveActions(common)
- .registerFullyLinkAction(
- common.getObjcProvider(),
- ruleContext.getImplicitOutputArtifact(CompilationSupport.FULLY_LINKED_LIB))
.validateAttributes();
J2ObjcMappingFileProvider j2ObjcMappingFileProvider =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryRule.java
index 6869ec1..491881f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryRule.java
@@ -33,13 +33,6 @@
return builder
.requiresConfigurationFragments(
ObjcConfiguration.class, AppleConfiguration.class, CppConfiguration.class)
- /*<!-- #BLAZE_RULE(objc_library).IMPLICIT_OUTPUTS -->
- <ul>
- <li><code><var>name</var>_fully_linked.a</code>: A fully linked static library that
- contains the full transitive closure of library dependencies.</li>
- </ul>
- <!-- #END_BLAZE_RULE.IMPLICIT_OUTPUTS -->*/
- .setImplicitOutputsFunction(CompilationSupport.FULLY_LINKED_LIB)
.cfg(AppleCrosstoolTransition.APPLE_CROSSTOOL_TRANSITION)
.addRequiredToolchains(CppRuleClasses.ccToolchainTypeAttribute(env))
.useToolchainTransition(ToolchainTransitionMode.ENABLED)
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
index e2e35a2..9b714e2 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
@@ -24,7 +24,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.actions.AbstractAction;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
@@ -868,15 +867,6 @@
}
@Test
- public void testJ2ObjCFullyLinkAction() throws Exception {
- AbstractAction linkAction = (AbstractAction) getGeneratingActionForLabel(
- "//java/com/google/dummy/test:transpile_fully_linked.a");
- String fullyLinkBinaryPath =
- Iterables.getOnlyElement(linkAction.getOutputs()).getExecPathString();
- assertThat(fullyLinkBinaryPath).contains("transpile_fully_linked.a");
- }
-
- @Test
public void testObjcCompileAction() throws Exception {
Artifact archive = j2objcArchive("//java/com/google/dummy/test:transpile", "test");
CommandAction compileAction = getObjcCompileAction(archive, "test.o");
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
index b839ca1..4635ddc 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
@@ -889,76 +889,6 @@
}
@Test
- public void testFullyLinkArchiveAction_simulator() throws Exception {
- useConfiguration("--apple_platform_type=ios", "--cpu=ios_i386", "--ios_cpu=i386");
- createLibraryTargetWriter("//objc:lib_dep")
- .setAndCreateFiles("srcs", "a.m", "b.m", "private.h")
- .setAndCreateFiles("hdrs", "a.h", "b.h")
- .write();
- createLibraryTargetWriter("//objc2:lib")
- .setAndCreateFiles("srcs", "a.m", "b.m", "private.h")
- .setAndCreateFiles("hdrs", "c.h", "d.h")
- .setList("deps", "//objc:lib_dep")
- .write();
- CommandAction linkAction =
- (CommandAction) getGeneratingActionForLabel("//objc2:lib_fully_linked.a");
- assertRequiresDarwin(linkAction);
- assertThat(linkAction.getArguments())
- .isEqualTo(
- ImmutableList.of(
- "tools/osx/crosstool/iossim/libtool",
- "-static",
- "-arch_only",
- "i386",
- "-syslibroot",
- AppleToolchain.sdkDir(),
- "-o",
- Iterables.getOnlyElement(linkAction.getOutputs()).getExecPathString(),
- getBinArtifact("liblib.a", getConfiguredTarget("//objc2:lib")).getExecPathString(),
- getBinArtifact("liblib_dep.a", getConfiguredTarget("//objc:lib_dep"))
- .getExecPathString()));
- // TODO(hlopko): make containsExactly once crosstools are updated so
- // link_dynamic_library.sh is not needed anymore
- assertThat(baseArtifactNames(linkAction.getInputs()))
- .containsAtLeast("liblib_dep.a", "liblib.a", CROSSTOOL_LINK_MIDDLEMAN);
- }
-
- @Test
- public void testFullyLinkArchiveAction_device() throws Exception {
- useConfiguration("--apple_platform_type=ios", "--cpu=ios_armv7", "--ios_cpu=armv7");
- createLibraryTargetWriter("//objc:lib_dep")
- .setAndCreateFiles("srcs", "a.m", "b.m", "private.h")
- .setAndCreateFiles("hdrs", "a.h", "b.h")
- .write();
- createLibraryTargetWriter("//objc2:lib")
- .setAndCreateFiles("srcs", "a.m", "b.m", "private.h")
- .setAndCreateFiles("hdrs", "c.h", "d.h")
- .setList("deps", "//objc:lib_dep")
- .write();
- CommandAction linkAction =
- (CommandAction) getGeneratingActionForLabel("//objc2:lib_fully_linked.a");
- assertRequiresDarwin(linkAction);
- assertThat(linkAction.getArguments())
- .isEqualTo(
- ImmutableList.of(
- "tools/osx/crosstool/ios/libtool",
- "-static",
- "-arch_only",
- "armv7",
- "-syslibroot",
- AppleToolchain.sdkDir(),
- "-o",
- Iterables.getOnlyElement(linkAction.getOutputs()).getExecPathString(),
- getBinArtifact("liblib.a", getConfiguredTarget("//objc2:lib")).getExecPathString(),
- getBinArtifact("liblib_dep.a", getConfiguredTarget("//objc:lib_dep"))
- .getExecPathString()));
- // TODO(hlopko): make containsExactly once crosstools are updated so
- // link_dynamic_library.sh is not needed anymore
- assertThat(baseArtifactNames(linkAction.getInputs()))
- .containsAtLeast("liblib_dep.a", "liblib.a", CROSSTOOL_LINK_MIDDLEMAN);
- }
-
- @Test
public void checkDoesNotStoreObjcLibsAsCC() throws Exception {
createLibraryTargetWriter("//objc:lib_dep")
.setAndCreateFiles("srcs", "a.m", "b.m", "private.h")
@@ -2222,9 +2152,6 @@
CppLinkAction archiveAction = (CppLinkAction) archiveAction("//foo:x");
assertThat(archiveAction.getMnemonic()).isEqualTo("CppLink");
- CppLinkAction fullyArchiveAction =
- (CppLinkAction) getGeneratingActionForLabel("//foo:x_fully_linked.a");
- assertThat(fullyArchiveAction.getMnemonic()).isEqualTo("CppLink");
}
protected List<String> linkstampExecPaths(NestedSet<CcLinkingContext.Linkstamp> linkstamps) {