aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Chris Parsons <cparsons@google.com>2017-01-31 20:23:00 +0000
committerGravatar Yun Peng <pcloudy@google.com>2017-02-01 08:55:26 +0000
commit92721884c5e7b990552d444588cb00dd6ebfe2a4 (patch)
tree9840a38a4ab7e528e7ac5b0d153969942dc42e24 /src/main/java/com/google/devtools/build/lib/rules
parent45da6c7b9775abe83057add6f20162adeb5ca76c (diff)
Remove apple_dynamic_library rule.
-- PiperOrigin-RevId: 146150539 MOS_MIGRATED_REVID=146150539
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibrary.java108
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibraryRule.java77
3 files changed, 0 insertions, 186 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
index 432c405741..86620b4f2d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -86,7 +86,6 @@ public class AppleConfiguration extends BuildConfiguration.Fragment {
public static final ImmutableList<String> APPLE_CROSSTOOL_RULE_CLASSES =
ImmutableList.of(
"apple_binary",
- "apple_dynamic_library",
"apple_static_library",
"apple_watch_extension_binary",
"experimental_objc_library",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibrary.java
deleted file mode 100644
index 9704fa9831..0000000000
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibrary.java
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright 2016 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.rules.objc;
-
-import static com.google.devtools.build.lib.rules.objc.ObjcProvider.MULTI_ARCH_DYNAMIC_LIBRARIES;
-import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.DylibDependingRule.DYLIBS_ATTR_NAME;
-
-import com.google.common.collect.ImmutableListMultimap;
-import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.analysis.ConfiguredTarget;
-import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
-import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
-import com.google.devtools.build.lib.analysis.RuleContext;
-import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
-import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory;
-import com.google.devtools.build.lib.rules.apple.AppleConfiguration;
-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.CcToolchainProvider;
-import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs;
-
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Implementation for the "apple_dynamic_library" rule.
- */
-public class AppleDynamicLibrary implements RuleConfiguredTargetFactory {
-
- @Override
- public final ConfiguredTarget create(RuleContext ruleContext)
- throws InterruptedException, RuleErrorException {
- PlatformType platformType = MultiArchSplitTransitionProvider.getPlatformType(ruleContext);
- AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class);
-
- Platform platform = appleConfiguration.getMultiArchPlatform(platformType);
- ImmutableListMultimap<BuildConfiguration, ObjcProvider> configurationToNonPropagatedObjcMap =
- ruleContext.getPrerequisitesByConfiguration("non_propagated_deps", Mode.SPLIT,
- ObjcProvider.class);
- ImmutableListMultimap<BuildConfiguration, TransitiveInfoCollection> configToDepsCollectionMap =
- ruleContext.getPrerequisitesByConfiguration("deps", Mode.SPLIT);
- Iterable<ObjcProvider> dylibProviders =
- ruleContext.getPrerequisites(DYLIBS_ATTR_NAME, Mode.TARGET, ObjcProvider.class);
- Iterable<ObjcProtoProvider> dylibProtoProviders =
- ruleContext.getPrerequisites(DYLIBS_ATTR_NAME, Mode.TARGET, ObjcProtoProvider.class);
- Set<BuildConfiguration> childConfigurations = getChildConfigurations(ruleContext);
- Artifact outputArtifact =
- ObjcRuleClasses.intermediateArtifacts(ruleContext).combinedArchitectureDylib();
-
- MultiArchBinarySupport multiArchBinarySupport = new MultiArchBinarySupport(ruleContext);
-
- Map<BuildConfiguration, ObjcProvider> objcProviderByDepConfiguration =
- multiArchBinarySupport.objcProviderByDepConfiguration(
- childConfigurations,
- configToDepsCollectionMap,
- configurationToNonPropagatedObjcMap,
- dylibProviders,
- dylibProtoProviders);
-
- multiArchBinarySupport.registerActions(
- platform,
- new ExtraLinkArgs("-dynamiclib"),
- objcProviderByDepConfiguration,
- ImmutableSet.<Artifact>of(),
- configToDepsCollectionMap,
- outputArtifact);
-
- NestedSetBuilder<Artifact> filesToBuild =
- NestedSetBuilder.<Artifact>stableOrder().add(outputArtifact);
- RuleConfiguredTargetBuilder targetBuilder =
- ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild.build());
-
- ObjcProvider.Builder objcProviderBuilder = new ObjcProvider.Builder();
- for (ObjcProvider objcProvider : objcProviderByDepConfiguration.values()) {
- objcProviderBuilder.addTransitiveAndPropagate(objcProvider);
- }
- objcProviderBuilder.add(MULTI_ARCH_DYNAMIC_LIBRARIES, outputArtifact);
-
- targetBuilder.addProvider(ObjcProvider.class, objcProviderBuilder.build());
- return targetBuilder.build();
- }
-
- private Set<BuildConfiguration> getChildConfigurations(RuleContext ruleContext) {
- // This is currently a hack to obtain all child configurations regardless of the attribute
- // values of this rule -- this rule does not currently use the actual info provided by
- // this attribute. b/28403953 tracks cc toolchain usage.
- ImmutableListMultimap<BuildConfiguration, CcToolchainProvider> configToProvider =
- ruleContext.getPrerequisitesByConfiguration(":cc_toolchain", Mode.SPLIT,
- CcToolchainProvider.class);
-
- return configToProvider.keySet();
- }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibraryRule.java
deleted file mode 100644
index dfd276dcce..0000000000
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibraryRule.java
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2016 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.rules.objc;
-
-import static com.google.devtools.build.lib.packages.ImplicitOutputsFunction.fromTemplates;
-
-import com.google.devtools.build.lib.analysis.BaseRuleClasses;
-import com.google.devtools.build.lib.analysis.RuleDefinition;
-import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
-import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplicitOutputsFunction;
-import com.google.devtools.build.lib.packages.RuleClass;
-import com.google.devtools.build.lib.packages.RuleClass.Builder;
-import com.google.devtools.build.lib.rules.apple.AppleConfiguration;
-
-/**
- * Rule definition for apple_dynamic_library.
- */
-// TODO(b/33077308): Remove this rule.
-public class AppleDynamicLibraryRule implements RuleDefinition {
-
- /**
- * Template for the fat dynamic library output (using Apple's "lipo" tool to combine dynamic
- * libraries of multiple architectures).
- */
- private static final SafeImplicitOutputsFunction LIPO_DYLIB = fromTemplates("%{name}_lipo.dylib");
-
- @Override
- public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
- MultiArchSplitTransitionProvider splitTransitionProvider =
- new MultiArchSplitTransitionProvider();
- return builder
- .requiresConfigurationFragments(
- ObjcConfiguration.class, J2ObjcConfiguration.class, AppleConfiguration.class)
- .override(builder.copy("deps").cfg(splitTransitionProvider))
- .override(builder.copy("non_propagated_deps").cfg(splitTransitionProvider))
- /*<!-- #BLAZE_RULE(apple_dynamic_library).IMPLICIT_OUTPUTS -->
- <ul>
- <li><code><var>name</var>_lipo.dylib</code>: the 'lipo'ed potentially multi-architecture
- dynamic library. All transitive dependencies and <code>srcs</code> are linked.</li>
- </ul>
- <!-- #END_BLAZE_RULE.IMPLICIT_OUTPUTS -->*/
- .setImplicitOutputsFunction(LIPO_DYLIB)
- .cfg(AppleCrosstoolTransition.APPLE_CROSSTOOL_TRANSITION)
- .build();
- }
-
- @Override
- public Metadata getMetadata() {
- return RuleDefinition.Metadata.builder()
- .name("apple_dynamic_library")
- .factoryClass(AppleDynamicLibrary.class)
- .ancestors(BaseRuleClasses.BaseRule.class, ObjcRuleClasses.LinkingRule.class,
- ObjcRuleClasses.MultiArchPlatformRule.class, ObjcRuleClasses.SimulatorRule.class,
- ObjcRuleClasses.DylibDependingRule.class)
- .build();
- }
-}
-
-/*<!-- #BLAZE_RULE (NAME = apple_dynamic_library, TYPE = BINARY, FAMILY = Objective-C) -->
-
-<p> This rule is deprecated. Please use apple_binary with binary_type = "dylib" instead. </p>
-
-${IMPLICIT_OUTPUTS}
-
-<!-- #END_BLAZE_RULE -->*/