From 8134b9fc140c810d00a91ca9a0313a1e4322ee00 Mon Sep 17 00:00:00 2001 From: cparsons Date: Wed, 17 Jan 2018 08:53:48 -0800 Subject: Migrate Apple providers to abide by Native Declared Provider best practices. This has the effect of documenting exposed struct fields on these providers. RELNOTES: None. PiperOrigin-RevId: 182221042 --- .../lib/rules/objc/AppleDebugOutputsProvider.java | 122 --------------------- 1 file changed, 122 deletions(-) delete mode 100644 src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java') diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java deleted file mode 100644 index cf476baaef..0000000000 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2017 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 com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; -import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.packages.NativeInfo; -import com.google.devtools.build.lib.packages.NativeProvider; -import java.util.HashMap; -import java.util.Map.Entry; - -/** - * A provider that holds debug outputs of an Apple binary rule. - * - *

This provider has no native interface and is intended to be read in Skylark code. - * - *

The only field it has is {@code output_map}, which is a dictionary of: { arch: { output_type: - * Artifact, output_type: Artifact, ... } } - * - *

Where {@code arch} is any Apple architecture such as "arm64" or "armv7", {@code output_type} - * can currently be "bitcode_symbols" or "dsym_binary", and the artifact is an instance of the - * {@link Artifact} class. - * - *

Example: { "arm64": { "bitcode_symbols": Artifact, "dsym_binary": Artifact } } - */ -@Immutable -public final class AppleDebugOutputsProvider extends NativeInfo { - - /** Expected types of debug outputs. */ - enum OutputType { - - /** A Bitcode symbol map, per architecture. */ - BITCODE_SYMBOLS, - - /** A single-architecture DWARF binary with debug symbols. */ - DSYM_BINARY, - - /** A single-architecture linkmap. */ - LINKMAP; - - @Override - public String toString() { - return name().toLowerCase(); - } - } - - /** Skylark name for the AppleDebugOutputsProvider. */ - public static final String SKYLARK_NAME = "AppleDebugOutputs"; - - /** Skylark constructor and identifier for AppleDebugOutputsProvider. */ - public static final NativeProvider SKYLARK_CONSTRUCTOR = - new NativeProvider( - AppleDebugOutputsProvider.class, SKYLARK_NAME) {}; - - /** - * Creates a new provider instance. - * - * @param map a map of - *

{@code
-   * {
-   *   arch: { output_type: Artifact, output_type: Artifact, ... },
-   * }
-   * }
- * Where: - * - */ - private AppleDebugOutputsProvider(ImmutableMap> map) { - super(SKYLARK_CONSTRUCTOR, ImmutableMap.of("outputs_map", map)); - } - - /** A builder for {@link AppleDebugOutputsProvider}. */ - public static class Builder { - private final HashMap> outputsByArch = Maps.newHashMap(); - - private Builder() {} - - public static Builder create() { - return new Builder(); - } - - /** - * Adds an output to the provider. - * - * @param arch any Apple architecture string, e.g. arm64, armv7. - * @param outputType {@link OutputType} corresponding to the artifact. - * @param artifact an {@link Artifact} that contains debug information. - * @return this builder. - */ - public Builder addOutput(String arch, OutputType outputType, Artifact artifact) { - outputsByArch.computeIfAbsent(arch, k -> new HashMap()); - - outputsByArch.get(arch).put(outputType.toString(), artifact); - return this; - } - - public AppleDebugOutputsProvider build() { - ImmutableMap.Builder> builder = ImmutableMap.builder(); - - for (Entry> e : outputsByArch.entrySet()) { - builder.put(e.getKey(), ImmutableMap.copyOf(e.getValue())); - } - - return new AppleDebugOutputsProvider(builder.build()); - } - } -} -- cgit v1.2.3