diff options
author | 2015-09-25 15:43:51 +0000 | |
---|---|---|
committer | 2015-09-28 11:39:12 +0000 | |
commit | a00b8b51926c67d572b9a1d28560669b80b7afc6 (patch) | |
tree | 2bbb51cd3d9e91294087ec10328f772b216f4088 /src/main/java/com/google/devtools/build/lib/rules | |
parent | d0d785c6cc2e8073bd359862cb46e63a9bd4544a (diff) |
Resolve labels in linkopts against either 'deps' or 'srcs'
RELNOTES[NEW]: labels in "linkopts" may match any label in either "deps" or "srcs" to be considered valid.
--
MOS_MIGRATED_REVID=103945104
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java | 17 |
1 files changed, 11 insertions, 6 deletions
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 1e0641ce44..09464b17ed 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 @@ -68,6 +68,9 @@ public class CppHelper { CppFileTypes.CPP_HEADER, CppFileTypes.CPP_SOURCE); + private static final ImmutableList<String> LINKOPTS_PREREQUISITE_LABEL_KINDS = + ImmutableList.of("deps", "srcs"); + private CppHelper() { // prevents construction } @@ -190,13 +193,15 @@ public class CppHelper { String labelName) { try { Label label = ruleContext.getLabel().getRelative(labelName); - for (FileProvider target : ruleContext - .getPrerequisites("deps", Mode.TARGET, FileProvider.class)) { - if (target.getLabel().equals(label)) { - for (Artifact artifact : target.getFilesToBuild()) { - linkopts.add(artifact.getExecPathString()); + for (String prereqKind : LINKOPTS_PREREQUISITE_LABEL_KINDS) { + for (FileProvider target : ruleContext + .getPrerequisites(prereqKind, Mode.TARGET, FileProvider.class)) { + if (target.getLabel().equals(label)) { + for (Artifact artifact : target.getFilesToBuild()) { + linkopts.add(artifact.getExecPathString()); + } + return true; } - return true; } } } catch (LabelSyntaxException e) { |