aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Yun Peng <pcloudy@google.com>2017-11-22 07:20:09 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-22 07:21:52 -0800
commit80e5beb7d17831f566ea2c362dd9d49b41684055 (patch)
tree19b68ae644def2b8036724c46c6b242926769b2f
parent335d0596bf9128fa4420a92a6da0772d280ae834 (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
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java7
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);
}