Skip to content

Commit

Permalink
Automated rollback of commit 34c7146.
Browse files Browse the repository at this point in the history
*** Reason for rollback ***

broke stuff

*** Original change description ***

Do location expansion in copts of objc_library

Fixes #13862

RELNOTES:none
PiperOrigin-RevId: 409910075
  • Loading branch information
googlewalt authored and copybara-github committed Nov 15, 2021
1 parent 7333aa6 commit 61bf2e5
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1103,7 +1103,7 @@ private static void checkDeprecated(String newApi, String oldApi, StarlarkSemant
* @param knownLabels List of known labels
* @return Immutable map with immutable collections as values
*/
public static ImmutableMap<Label, ImmutableCollection<Artifact>> makeLabelMap(
private static ImmutableMap<Label, ImmutableCollection<Artifact>> makeLabelMap(
Iterable<TransitiveInfoCollection> knownLabels) {
ImmutableMap.Builder<Label, ImmutableCollection<Artifact>> builder = ImmutableMap.builder();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,8 @@

import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.devtools.build.docgen.annot.DocCategory;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.LocationExpander;
import com.google.devtools.build.lib.analysis.TemplateVariableInfo;
import com.google.devtools.build.lib.analysis.starlark.StarlarkRuleContext;
import com.google.devtools.build.lib.analysis.test.InstrumentedFilesInfo;
Expand Down Expand Up @@ -118,18 +116,7 @@ public Sequence<String> expandToolchainAndRuleContextVariables(
ImmutableMap.<String, String>builder().putAll(starlarkRuleContext.var()).build();
List<String> expandedFlags = new ArrayList<>();
for (String flag : Sequence.cast(flags, String.class, "flags")) {
@SuppressWarnings("unchecked")
String expandedFlag =
LocationExpander.withExecPaths(
starlarkRuleContext.getRuleContext(),
StarlarkRuleContext.makeLabelMap(
Iterables.concat(
starlarkRuleContext.getRuleContext().getPrerequisites("srcs"),
starlarkRuleContext.getRuleContext().getPrerequisites("non_arc_srcs"),
starlarkRuleContext.getRuleContext().getPrerequisites("hdrs"),
starlarkRuleContext.getRuleContext().getPrerequisites("data"))))
.expand(flag);
expandedFlag = expandFlag(expandedFlag, toolchainMap, starlarkRuleContextMap);
String expandedFlag = expandFlag(flag, toolchainMap, starlarkRuleContextMap);
try {
ShellUtils.tokenize(expandedFlags, expandedFlag);
} catch (TokenizationException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2380,25 +2380,4 @@ public void testCompilationPrerequisitesHasHeaders() throws Exception {
.getOutputGroup(OutputGroupInfo.COMPILATION_PREREQUISITES)))
.contains("src bin/cc.h");
}

@Test
public void testCoptsLocationIsExpanded() throws Exception {
scratch.file(
"bin/BUILD",
"objc_library(",
" name = 'lib',",
" copts = ['$(rootpath lib1.m) $(location lib2.m) $(location data.data) $(execpath"
+ " header.h)'],",
" srcs = ['lib1.m'],",
" non_arc_srcs = ['lib2.m'],",
" data = ['data.data'],",
" hdrs = ['header.h'],",
")");

useConfiguration("--apple_platform_type=ios", "--cpu=ios_x86_64");

CppCompileAction compileA = (CppCompileAction) compileAction("//bin:lib", "lib1.o");
assertThat(compileA.compileCommandLine.getCopts())
.containsAtLeast("bin/lib1.m", "bin/lib2.m", "bin/data.data", "bin/header.h");
}
}

0 comments on commit 61bf2e5

Please sign in to comment.