From 9d513cab93f03856c5e7ccdd38dbf864f7c5be00 Mon Sep 17 00:00:00 2001 From: Kristina Chodorow Date: Wed, 12 Aug 2015 15:48:30 +0000 Subject: Set the workspace suffix for runfiles This CL covers the "easy" cases. Followup CLs will take care of couple dozen remaining gnarly ones. -- MOS_MIGRATED_REVID=100479410 --- .../build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java | 7 ++++--- .../build/lib/rules/SkylarkRuleImplementationFunctions.java | 2 +- .../com/google/devtools/build/lib/rules/android/AndroidBinary.java | 3 ++- .../com/google/devtools/build/lib/rules/android/AndroidCommon.java | 2 +- .../java/com/google/devtools/build/lib/rules/cpp/CcBinary.java | 2 +- .../java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java | 2 +- .../com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java | 2 +- .../com/google/devtools/build/lib/rules/filegroup/Filegroup.java | 4 ++-- .../com/google/devtools/build/lib/rules/genquery/GenQuery.java | 3 ++- .../java/com/google/devtools/build/lib/rules/java/JavaBinary.java | 4 ++-- .../java/com/google/devtools/build/lib/rules/java/JavaImport.java | 2 +- .../java/com/google/devtools/build/lib/rules/java/JavaLibrary.java | 6 ++---- .../google/devtools/build/lib/rules/java/JavaLibraryHelper.java | 2 +- .../google/devtools/build/lib/rules/objc/ExperimentalIosTest.java | 2 +- .../com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java | 6 ++++-- .../devtools/build/lib/rules/objc/ReleaseBundlingSupport.java | 2 +- .../java/com/google/devtools/build/lib/rules/python/PyBinary.java | 7 ++++--- .../java/com/google/devtools/build/lib/rules/python/PyLibrary.java | 2 +- .../java/com/google/devtools/build/lib/rules/test/TestSuite.java | 2 +- 19 files changed, 33 insertions(+), 29 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules') diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java index 11eca3b9dc..683771e8b1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java @@ -176,7 +176,7 @@ public final class SkylarkRuleConfiguredTargetBuilder { } RunfilesProvider runfilesProvider = statelessRunfiles != null - ? RunfilesProvider.simple(merge(statelessRunfiles, executable)) + ? RunfilesProvider.simple(merge(statelessRunfiles, executable, ruleContext)) : RunfilesProvider.withData( // The executable doesn't get into the default runfiles if we have runfiles states. // This is to keep skylark genrule consistent with the original genrule. @@ -220,10 +220,11 @@ public final class SkylarkRuleConfiguredTargetBuilder { paramName, EvalUtils.getDataTypeName(value, false), value); } - private static Runfiles merge(Runfiles runfiles, Artifact executable) { + private static Runfiles merge(Runfiles runfiles, Artifact executable, RuleContext ruleContext) { if (executable == null) { return runfiles; } - return new Runfiles.Builder().addArtifact(executable).merge(runfiles).build(); + return new Runfiles.Builder(ruleContext.getWorkspaceName()).addArtifact(executable) + .merge(runfiles).build(); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java index 6edc400436..4cb6ca52db 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java @@ -473,7 +473,7 @@ public class SkylarkRuleImplementationFunctions { public Runfiles invoke(SkylarkRuleContext ctx, SkylarkList files, Object transitiveFiles, Boolean collectData, Boolean collectDefault, Location loc) throws EvalException, ConversionException { - Runfiles.Builder builder = new Runfiles.Builder(); + Runfiles.Builder builder = new Runfiles.Builder(ctx.getRuleContext().getWorkspaceName()); if (EvalUtils.toBoolean(collectData)) { builder.addRunfiles(ctx.getRuleContext(), RunfilesProvider.DATA_RUNFILES); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java index d902395c54..e0e4c7fd23 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java @@ -506,7 +506,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { return builder .setFilesToBuild(filesToBuild) - .add(RunfilesProvider.class, RunfilesProvider.simple(new Runfiles.Builder() + .add(RunfilesProvider.class, RunfilesProvider.simple( + new Runfiles.Builder(ruleContext.getWorkspaceName()) .addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES) .addTransitiveArtifacts(filesToBuild) .build())) diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java index e5bc26c15f..c694ccef5d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java @@ -521,7 +521,7 @@ public class AndroidCommon { ruleContext, idls, transitiveIdlImportData, translatedIdlSources); } - Runfiles runfiles = new Runfiles.Builder() + Runfiles runfiles = new Runfiles.Builder(ruleContext.getWorkspaceName()) .addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES) .build(); 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 99ebe89310..ad50ad4131 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 @@ -97,7 +97,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { Iterable fakeLinkerInputs, boolean fake, ImmutableList> cAndCppSources) { - Runfiles.Builder builder = new Runfiles.Builder(); + Runfiles.Builder builder = new Runfiles.Builder(context.getWorkspaceName()); Function runfilesMapping = CppRunfilesProvider.runfilesFunction(linkStaticness != LinkStaticness.DYNAMIC); boolean linkshared = isLinkShared(context); 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 1a6a75dfe0..cc5a02a054 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 @@ -76,7 +76,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { CcLinkingOutputs ccLinkingOutputs, boolean neverLink, boolean addDynamicRuntimeInputArtifactsToRunfiles, boolean linkingStatically) { - Runfiles.Builder builder = new Runfiles.Builder(); + Runfiles.Builder builder = new Runfiles.Builder(context.getWorkspaceName()); // neverlink= true creates a library that will never be linked into any binary that depends on // it, but instead be loaded as an extension. So we need the dynamic library for this in the 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 790a9d7d97..204c718092 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 @@ -857,7 +857,7 @@ public final class CcLibraryHelper { private Runfiles collectCppRunfiles( CcLinkingOutputs ccLinkingOutputs, boolean linkingStatically) { - Runfiles.Builder builder = new Runfiles.Builder(); + Runfiles.Builder builder = new Runfiles.Builder(ruleContext.getWorkspaceName()); builder.addTargets(deps, RunfilesProvider.DEFAULT_RUNFILES); builder.addTargets(deps, CppRunfilesProvider.runfilesFunction(linkingStatically)); // Add the shared libraries to the runfiles. diff --git a/src/main/java/com/google/devtools/build/lib/rules/filegroup/Filegroup.java b/src/main/java/com/google/devtools/build/lib/rules/filegroup/Filegroup.java index 3e51bc61ab..83d3d7a20f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/filegroup/Filegroup.java +++ b/src/main/java/com/google/devtools/build/lib/rules/filegroup/Filegroup.java @@ -57,11 +57,11 @@ public class Filegroup implements RuleConfiguredTargetFactory { InstrumentedFilesCollector.NO_METADATA_COLLECTOR, filesToBuild); RunfilesProvider runfilesProvider = RunfilesProvider.withData( - new Runfiles.Builder() + new Runfiles.Builder(ruleContext.getWorkspaceName()) .addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES) .build(), // If you're visiting a filegroup as data, then we also visit its data as data. - new Runfiles.Builder().addTransitiveArtifacts(filesToBuild) + new Runfiles.Builder(ruleContext.getWorkspaceName()).addTransitiveArtifacts(filesToBuild) .addDataDeps(ruleContext).build()); return new RuleConfiguredTargetBuilder(ruleContext) diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java index bbc432e7a5..4920ed5c31 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java +++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java @@ -154,7 +154,8 @@ public class GenQuery implements RuleConfiguredTargetFactory { return new RuleConfiguredTargetBuilder(ruleContext) .setFilesToBuild(filesToBuild) .add(RunfilesProvider.class, RunfilesProvider.simple( - new Runfiles.Builder().addTransitiveArtifacts(filesToBuild).build())) + new Runfiles.Builder(ruleContext.getWorkspaceName()) + .addTransitiveArtifacts(filesToBuild).build())) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java index 3c45f8a0f3..206043e5c1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java @@ -58,7 +58,7 @@ public class JavaBinary implements RuleConfiguredTargetFactory { public ConfiguredTarget create(RuleContext ruleContext) { final JavaCommon common = new JavaCommon(ruleContext, semantics); DeployArchiveBuilder deployArchiveBuilder = new DeployArchiveBuilder(semantics, ruleContext); - Runfiles.Builder runfilesBuilder = new Runfiles.Builder(); + Runfiles.Builder runfilesBuilder = new Runfiles.Builder(ruleContext.getWorkspaceName()); List jvmFlags = new ArrayList<>(); common.initializeJavacOpts(); @@ -209,7 +209,7 @@ public class JavaBinary implements RuleConfiguredTargetFactory { RunfilesProvider runfilesProvider = RunfilesProvider.withData( defaultRunfiles, - new Runfiles.Builder().merge(runfilesSupport).build()); + new Runfiles.Builder(ruleContext.getWorkspaceName()).merge(runfilesSupport).build()); ImmutableList deployManifestLines = getDeployManifestLines(ruleContext, originalMainClass); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java index 77850f9a99..1291f49ae8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java @@ -88,7 +88,7 @@ public class JavaImport implements RuleConfiguredTargetFactory { // runfiles from this target or its dependencies. Runfiles runfiles = neverLink ? Runfiles.EMPTY : - new Runfiles.Builder() + new Runfiles.Builder(ruleContext.getWorkspaceName()) // add the jars to the runfiles .addArtifacts(common.getJavaCompilationArtifacts().getRuntimeJars()) .addTargets(targets, RunfilesProvider.DEFAULT_RUNFILES) diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java index ab303725f1..60afde4567 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java @@ -183,10 +183,8 @@ public class JavaLibrary implements RuleConfiguredTargetFactory { // runfiles from this target or its dependencies. Runfiles runfiles = Runfiles.EMPTY; if (!neverLink) { - Runfiles.Builder runfilesBuilder = new Runfiles.Builder().addArtifacts( - common.getJavaCompilationArtifacts().getRuntimeJars()); - - + Runfiles.Builder runfilesBuilder = new Runfiles.Builder(ruleContext.getWorkspaceName()) + .addArtifacts(common.getJavaCompilationArtifacts().getRuntimeJars()); runfilesBuilder.addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES); runfilesBuilder.add(ruleContext, JavaRunfilesProvider.TO_RUNFILES); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java index b8210e226c..0343f34121 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java @@ -361,7 +361,7 @@ public final class JavaLibraryHelper { private JavaRunfilesProvider collectJavaRunfiles( JavaCompilationArtifacts javaCompilationArtifacts) { - Runfiles runfiles = new Runfiles.Builder() + Runfiles runfiles = new Runfiles.Builder(ruleContext.getWorkspaceName()) // Compiled templates as well, for API. .addArtifacts(javaCompilationArtifacts.getRuntimeJars()) .addTargets(deps, JavaRunfilesProvider.TO_RUNFILES) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalIosTest.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalIosTest.java index 4147412439..dd034b7f0c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalIosTest.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalIosTest.java @@ -38,7 +38,7 @@ public final class ExperimentalIosTest extends IosTest { public ConfiguredTarget create(RuleContext ruleContext, ObjcCommon common, XcodeProvider xcodeProvider, NestedSet filesToBuild) throws InterruptedException { - Runfiles.Builder runfilesBuilder = new Runfiles.Builder() + Runfiles.Builder runfilesBuilder = new Runfiles.Builder(ruleContext.getWorkspaceName()) .addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES); NestedSetBuilder filesToBuildBuilder = NestedSetBuilder.stableOrder() .addTransitive(filesToBuild); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java index 05789407c4..52b6a38896 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java @@ -186,8 +186,10 @@ public class ObjcRuleClasses { static RuleConfiguredTargetBuilder ruleConfiguredTarget(RuleContext ruleContext, NestedSet filesToBuild) { RunfilesProvider runfilesProvider = RunfilesProvider.withData( - new Runfiles.Builder().addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES).build(), - new Runfiles.Builder().addTransitiveArtifacts(filesToBuild).build()); + new Runfiles.Builder(ruleContext.getWorkspaceName()) + .addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES).build(), + new Runfiles.Builder(ruleContext.getWorkspaceName()) + .addTransitiveArtifacts(filesToBuild).build()); return new RuleConfiguredTargetBuilder(ruleContext) .setFilesToBuild(filesToBuild) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java index d7644bc84d..67b65b2702 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java @@ -447,7 +447,7 @@ public final class ReleaseBundlingSupport { */ RunfilesSupport runfilesSupport(Artifact runnerScript) { Artifact ipaFile = ruleContext.getImplicitOutputArtifact(ReleaseBundlingSupport.IPA); - Runfiles runfiles = new Runfiles.Builder() + Runfiles runfiles = new Runfiles.Builder(ruleContext.getWorkspaceName()) .addArtifact(ipaFile) .addArtifact(runnerScript) .addArtifact(attributes.iossim()) diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyBinary.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyBinary.java index b732cae2ed..946cf76617 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PyBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyBinary.java @@ -69,7 +69,8 @@ public abstract class PyBinary implements RuleConfiguredTargetFactory { semantics.createExecutable(ruleContext, common, ccLinkParamsStore); Runfiles commonRunfiles = collectCommonRunfiles(ruleContext, common, semantics); - Runfiles.Builder defaultRunfilesBuilder = new Runfiles.Builder().merge(commonRunfiles); + Runfiles.Builder defaultRunfilesBuilder = new Runfiles.Builder(ruleContext.getWorkspaceName()) + .merge(commonRunfiles); semantics.collectDefaultRunfilesForBinary(ruleContext, defaultRunfilesBuilder); Runfiles defaultRunfiles = defaultRunfilesBuilder.build(); @@ -83,7 +84,7 @@ public abstract class PyBinary implements RuleConfiguredTargetFactory { // Only include common runfiles and middleman. Default runfiles added by semantics are // excluded. The middleman is necessary to ensure the runfiles trees are generated for all // dependency binaries. - Runfiles dataRunfiles = new Runfiles.Builder() + Runfiles dataRunfiles = new Runfiles.Builder(ruleContext.getWorkspaceName()) .merge(commonRunfiles) .addArtifact(runfilesSupport.getRunfilesMiddleman()) .build(); @@ -104,7 +105,7 @@ public abstract class PyBinary implements RuleConfiguredTargetFactory { private static Runfiles collectCommonRunfiles(RuleContext ruleContext, PyCommon common, PythonSemantics semantics) { - Runfiles.Builder builder = new Runfiles.Builder(); + Runfiles.Builder builder = new Runfiles.Builder(ruleContext.getWorkspaceName()); builder.addArtifact(common.getExecutable()); if (common.getConvertedFiles() != null) { builder.addSymlinks(common.getConvertedFiles()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java index fc6cecbaa4..2904e9ffc7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyLibrary.java @@ -68,7 +68,7 @@ public abstract class PyLibrary implements RuleConfiguredTargetFactory { } }; - Runfiles.Builder runfilesBuilder = new Runfiles.Builder(); + Runfiles.Builder runfilesBuilder = new Runfiles.Builder(ruleContext.getWorkspaceName()); if (common.getConvertedFiles() != null) { runfilesBuilder.addSymlinks(common.getConvertedFiles()); } else { diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestSuite.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestSuite.java index 8ec556ed67..9080c9e879 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/test/TestSuite.java +++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestSuite.java @@ -73,7 +73,7 @@ public class TestSuite implements RuleConfiguredTargetFactory { directTestsAndSuitesBuilder.add(dep); } - Runfiles runfiles = new Runfiles.Builder() + Runfiles runfiles = new Runfiles.Builder(ruleContext.getWorkspaceName()) .addTargets(directTestsAndSuitesBuilder, RunfilesProvider.DATA_RUNFILES) .build(); -- cgit v1.2.3