diff options
author | Yun Peng <pcloudy@google.com> | 2017-11-22 07:20:09 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-11-22 07:21:52 -0800 |
commit | 80e5beb7d17831f566ea2c362dd9d49b41684055 (patch) | |
tree | 19b68ae644def2b8036724c46c6b242926769b2f /src/main/java/com/google/devtools/build/lib/rules | |
parent | 335d0596bf9128fa4420a92a6da0772d280ae834 (diff) |
Check if win_def_file attribute exists before getting its value
Because CcProtoAspect.java also uses CcLibraryHelper.java to generate
linking action, but cc_proto_library doesn't have win_def_file
attribute.
Fix https://github.com/bazelbuild/bazel/issues/4126
Change-Id: I1b819c926c8025a49fea756bcaeb237824cb098e
PiperOrigin-RevId: 176653922
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/CppModel.java | 7 |
1 files changed, 6 insertions, 1 deletions
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 261f3281cc..5a51cb012f 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 @@ -14,6 +14,8 @@ package com.google.devtools.build.lib.rules.cpp; +import static com.google.devtools.build.lib.packages.BuildType.LABEL; + import com.google.common.base.Preconditions; import com.google.common.base.Predicate; import com.google.common.base.Predicates; @@ -1467,7 +1469,10 @@ public final class CppModel { } // If user specifies a custom DEF file, then we use this one instead of the generated one. - Artifact customDefFile = ruleContext.getPrerequisiteArtifact("win_def_file", Mode.TARGET); + Artifact customDefFile = null; + if (ruleContext.isAttrDefined("win_def_file", LABEL)) { + customDefFile = ruleContext.getPrerequisiteArtifact("win_def_file", Mode.TARGET); + } if (customDefFile != null) { dynamicLinkActionBuilder.setDefFile(customDefFile); } |