diff options
author | 2015-09-18 11:40:12 +0000 | |
---|---|---|
committer | 2015-09-21 08:56:51 +0000 | |
commit | ffa73addaf80ab7a9cf9f98e5d4414b152ae6cb6 (patch) | |
tree | f498621bb8634d934815dbaddf90400eda0ce28d /src/main/java/com/google/devtools/build/lib/rules/cpp | |
parent | 29ad862a5bd45d2fdbb921f36bbb95816cf47acc (diff) |
Separate build-specific types and types inherent to Skylark.
--
MOS_MIGRATED_REVID=103374106
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
11 files changed, 34 insertions, 29 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index 663532ba2b..9c6e8a5674 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -37,7 +37,6 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; 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.TargetUtils; -import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode; @@ -46,6 +45,7 @@ import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink; import com.google.devtools.build.lib.rules.test.InstrumentedFilesProvider; import com.google.devtools.build.lib.syntax.Label; +import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.FileType; import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.util.OsUtils; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index 8028abda49..9106fc8d7b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java @@ -28,7 +28,7 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.collect.nestedset.NestedSet; 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.Type; +import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.HeadersCheckingMode; @@ -39,6 +39,7 @@ import com.google.devtools.build.lib.rules.test.InstrumentedFilesProvider; import com.google.devtools.build.lib.rules.test.InstrumentedFilesProviderImpl; import com.google.devtools.build.lib.shell.ShellUtils; import com.google.devtools.build.lib.syntax.Label; +import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.FileType; import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.util.Pair; @@ -174,7 +175,7 @@ public final class CcCommon { deps.addAll(ruleContext.getPrerequisites("deps", Mode.TARGET)); - if (ruleContext.attributes().has("malloc", Type.LABEL)) { + if (ruleContext.attributes().has("malloc", BuildType.LABEL)) { deps.add(CppHelper.mallocForTarget(ruleContext)); } @@ -211,7 +212,7 @@ public final class CcCommon { // TODO(bazel-team): Move header processing logic down in the stack (to CcLibraryHelper or // such). boolean processHeaders = shouldProcessHeaders(); - if (processHeaders && hasAttribute("hdrs", Type.LABEL_LIST)) { + if (processHeaders && hasAttribute("hdrs", BuildType.LABEL_LIST)) { providers = Iterables.concat(providers, ruleContext.getPrerequisites("hdrs", Mode.TARGET, FileProvider.class)); } @@ -376,7 +377,7 @@ public final class CcCommon { result.add(rulePackage); // Gather up all the dirs from the rule's srcs as well as any of the srcs outputs. - if (hasAttribute("srcs", Type.LABEL_LIST)) { + if (hasAttribute("srcs", BuildType.LABEL_LIST)) { for (FileProvider src : ruleContext.getPrerequisites("srcs", Mode.TARGET, FileProvider.class)) { PathFragment packageDir = src.getLabel().getPackageIdentifier().getPathFragment(); @@ -443,7 +444,7 @@ public final class CcCommon { RuleContext ruleContext, CppCompilationContext context) { // TODO(bazel-team): Use context.getCompilationPrerequisites() instead. NestedSetBuilder<Artifact> prerequisites = NestedSetBuilder.stableOrder(); - if (ruleContext.attributes().has("srcs", Type.LABEL_LIST)) { + if (ruleContext.attributes().has("srcs", BuildType.LABEL_LIST)) { for (FileProvider provider : ruleContext .getPrerequisites("srcs", Mode.TARGET, FileProvider.class)) { prerequisites.addAll(FileType.filter(provider.getFilesToBuild(), SOURCE_TYPES)); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java index d938fa7170..0c348720a2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java @@ -30,15 +30,16 @@ import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.packages.AttributeMap; +import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.ImplicitOutputsFunction; import com.google.devtools.build.lib.packages.RawAttributeMapper; -import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink; import com.google.devtools.build.lib.rules.test.InstrumentedFilesProvider; import com.google.devtools.build.lib.syntax.Label; +import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.FileType; import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.vfs.PathFragment; @@ -163,13 +164,13 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { } } - if (ruleContext.getRule().isAttrDefined("srcs", Type.LABEL_LIST)) { + if (ruleContext.getRule().isAttrDefined("srcs", BuildType.LABEL_LIST)) { helper.addPrivateHeaders(FileType.filter( ruleContext.getPrerequisiteArtifacts("srcs", Mode.TARGET).list(), CppFileTypes.CPP_HEADER)); ruleContext.checkSrcsSamePackage(true); } - if (ruleContext.getRule().isAttrDefined("textual_hdrs", Type.LABEL_LIST)) { + if (ruleContext.getRule().isAttrDefined("textual_hdrs", BuildType.LABEL_LIST)) { helper.addPublicTextualHeaders( ruleContext.getPrerequisiteArtifacts("textual_hdrs", Mode.TARGET).list()); } @@ -187,7 +188,8 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { // where we *do* have the correct value, it may not contain any source files to generate an // .so with. If that's the case, register a fake generating action to prevent a "no generating // action for this artifact" error. - if (!createDynamicLibrary && ruleContext.attributes().isConfigurable("srcs", Type.LABEL_LIST)) { + if (!createDynamicLibrary + && ruleContext.attributes().isConfigurable("srcs", BuildType.LABEL_LIST)) { Artifact solibArtifact = CppHelper.getLinkedArtifact( ruleContext, LinkTargetType.DYNAMIC_LIBRARY); ruleContext.registerAction(new FailAction(ruleContext.getActionOwner(), @@ -347,7 +349,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { * name of a genrule that generates a source file. */ public static boolean appearsToHaveObjectFiles(AttributeMap rule) { - if ((rule instanceof RawAttributeMapper) && rule.isConfigurable("srcs", Type.LABEL_LIST)) { + if ((rule instanceof RawAttributeMapper) && rule.isConfigurable("srcs", BuildType.LABEL_LIST)) { // Since this method gets called by loading phase logic (e.g. the cc_library implicit outputs // function), the attribute mapper may not be able to resolve configurable attributes. When // that's the case, there's no way to know which value a configurable "srcs" will take, so @@ -355,7 +357,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { return true; } - List<Label> srcs = rule.get("srcs", Type.LABEL_LIST); + List<Label> srcs = rule.get("srcs", BuildType.LABEL_LIST); if (srcs != null) { for (Label srcfile : srcs) { /* diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java index c1b111da07..52c75716da 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java @@ -34,7 +34,7 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.collect.nestedset.NestedSet; 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.Type; +import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.HeadersCheckingMode; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; @@ -611,7 +611,7 @@ public final class CcLibraryHelper { Preconditions.checkState( // 'cc_inc_library' rules do not compile, and thus are not affected by LIPO. ruleContext.getRule().getRuleClass().equals("cc_inc_library") - || ruleContext.getRule().isAttrDefined(":lipo_context_collector", Type.LABEL)); + || ruleContext.getRule().isAttrDefined(":lipo_context_collector", BuildType.LABEL)); if (checkDepsGenerateCpp) { for (LanguageDependentFragment dep : diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java index bd39d0f745..7abeaf1c32 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java @@ -13,7 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.rules.cpp; -import static com.google.devtools.build.lib.packages.Type.BOOLEAN; +import static com.google.devtools.build.lib.syntax.Type.BOOLEAN; import com.google.common.base.Preconditions; import com.google.common.collect.Iterables; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java index 1ab031612f..5ee3df08ae 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java @@ -15,11 +15,11 @@ package com.google.devtools.build.lib.rules.cpp; import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST; import static com.google.devtools.build.lib.packages.Attribute.attr; -import static com.google.devtools.build.lib.packages.Type.BOOLEAN; -import static com.google.devtools.build.lib.packages.Type.LABEL; -import static com.google.devtools.build.lib.packages.Type.LABEL_LIST; -import static com.google.devtools.build.lib.packages.Type.LICENSE; -import static com.google.devtools.build.lib.packages.Type.STRING; +import static com.google.devtools.build.lib.packages.BuildType.LABEL; +import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST; +import static com.google.devtools.build.lib.packages.BuildType.LICENSE; +import static com.google.devtools.build.lib.syntax.Type.BOOLEAN; +import static com.google.devtools.build.lib.syntax.Type.STRING; import com.google.devtools.build.lib.analysis.BaseRuleClasses; import com.google.devtools.build.lib.analysis.RuleDefinition; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteRule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteRule.java index 61922bd74b..984be2ffb3 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuiteRule.java @@ -18,9 +18,10 @@ import static com.google.devtools.build.lib.packages.Attribute.attr; 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.BuildType; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; -import com.google.devtools.build.lib.packages.Type; +import com.google.devtools.build.lib.syntax.Type; /** * Definition of the {@code cc_toolchain_suite} rule. @@ -31,7 +32,7 @@ public final class CcToolchainSuiteRule implements RuleDefinition { public RuleClass build(Builder builder, RuleDefinitionEnvironment environment) { return builder .setUndocumented() - .add(attr("toolchains", Type.LABEL_DICT_UNARY) + .add(attr("toolchains", BuildType.LABEL_DICT_UNARY) .mandatory() .nonconfigurable("Used during configuration creation")) .add(attr("proto", Type.STRING) diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java index 96b1add119..fab12a3ff6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java @@ -26,6 +26,7 @@ import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactor import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; +import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.InputFile; import com.google.devtools.build.lib.packages.NoSuchPackageException; import com.google.devtools.build.lib.packages.NoSuchTargetException; @@ -33,7 +34,6 @@ import com.google.devtools.build.lib.packages.NoSuchThingException; import com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; -import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.syntax.Label; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; @@ -179,7 +179,7 @@ public class CppConfigurationLoader implements ConfigurationFragmentFactory { && ((Rule) crosstoolTop).getRuleClass().equals("cc_toolchain_suite")) { Rule ccToolchainSuite = (Rule) crosstoolTop; ccToolchainLabel = NonconfigurableAttributeMapper.of(ccToolchainSuite) - .get("toolchains", Type.LABEL_DICT_UNARY) + .get("toolchains", BuildType.LABEL_DICT_UNARY) .get(toolchain.getTargetCpu()); if (ccToolchainLabel == null) { throw new InvalidConfigurationException(String.format( diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java index 1e8b247475..5d27e9e386 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java @@ -32,13 +32,14 @@ import com.google.devtools.build.lib.analysis.actions.SpawnAction; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; +import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.RuleErrorConsumer; -import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.rules.cpp.CcLinkParams.Linkstamp; import com.google.devtools.build.lib.rules.cpp.CppCompilationContext.Builder; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.shell.ShellUtils; import com.google.devtools.build.lib.syntax.Label; +import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.util.IncludeScanningUtil; import com.google.devtools.build.lib.vfs.PathFragment; @@ -351,7 +352,7 @@ public class CppHelper { scannableBuilder.addTransitive(dep.getTransitiveIncludeScannables()); } - if (ruleContext.attributes().has("malloc", Type.LABEL)) { + if (ruleContext.attributes().has("malloc", BuildType.LABEL)) { TransitiveInfoCollection malloc = mallocForTarget(ruleContext); TransitiveLipoInfoProvider provider = malloc.getProvider(TransitiveLipoInfoProvider.class); if (provider != null) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java index 4ce8c61b3e..8fa96ad9d4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java @@ -25,7 +25,7 @@ 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.NestedSet; -import com.google.devtools.build.lib.packages.Type; +import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.rules.cpp.CcCompilationOutputs.Builder; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.Link.LinkStaticness; @@ -794,7 +794,7 @@ public final class CppModel { // readable and can lead to unexpected breakage. // b) Traversing the transitive closure for each C++ compile action would require more complex // implementation (with caching results of this method) to avoid O(N^2) slowdown. - if (ruleContext.getRule().isAttrDefined("deps", Type.LABEL_LIST)) { + if (ruleContext.getRule().isAttrDefined("deps", BuildType.LABEL_LIST)) { for (TransitiveInfoCollection dep : ruleContext.getPrerequisites("deps", Mode.TARGET)) { if (dep.getProvider(CppCompilationContext.class) != null && filter.isIncluded(dep.getLabel().toString())) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoader.java index 22ae3ec0e1..c475d6f88c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoader.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoader.java @@ -31,8 +31,8 @@ import com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; -import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.syntax.Label; +import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.Fingerprint; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; |