diff options
author | Yun Peng <pcloudy@google.com> | 2017-11-20 08:34:32 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-11-20 08:36:26 -0800 |
commit | 9738f35abddb7ef7a7ef314b5d2a52a3be1b830a (patch) | |
tree | a79b0fa52c4fbd7f9da999a30a54fd8291ef5cb3 | |
parent | 4117c867fe8e560f53bc1c7106af9c2889cc18f2 (diff) |
CcProtoLibrary: Don't add dynamic librarys to filesToBuild on Windows
https://github.com/bazelbuild/bazel/issues/3985
Change-Id: Ib566103e147219122b3f745a98ad30db5f27553f
PiperOrigin-RevId: 176365079
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java | 22 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java | 4 |
2 files changed, 19 insertions, 7 deletions
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 137dfdbf5b..746d58ba11 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 @@ -245,15 +245,25 @@ public final class CcLibraryHelper { } /** - * Adds the static, pic-static, and dynamic (both compile-time and execution-time) libraries to - * the given builder. + * Adds the static, pic-static libraries to the given builder. + * If addDynamicLibraries parameter is true, it also adds dynamic(both compile-time and + * execution-time) libraries. */ - public void addLinkingOutputsTo(NestedSetBuilder<Artifact> filesBuilder) { + public void addLinkingOutputsTo( + NestedSetBuilder<Artifact> filesBuilder, boolean addDynamicLibraries) { filesBuilder .addAll(LinkerInputs.toLibraryArtifacts(linkingOutputs.getStaticLibraries())) - .addAll(LinkerInputs.toLibraryArtifacts(linkingOutputs.getPicStaticLibraries())) - .addAll(LinkerInputs.toNonSolibArtifacts(linkingOutputs.getDynamicLibraries())) - .addAll(LinkerInputs.toNonSolibArtifacts(linkingOutputs.getExecutionDynamicLibraries())); + .addAll(LinkerInputs.toLibraryArtifacts(linkingOutputs.getPicStaticLibraries())); + if (addDynamicLibraries) { + filesBuilder + .addAll(LinkerInputs.toNonSolibArtifacts(linkingOutputs.getDynamicLibraries())) + .addAll( + LinkerInputs.toNonSolibArtifacts(linkingOutputs.getExecutionDynamicLibraries())); + } + } + + public void addLinkingOutputsTo(NestedSetBuilder<Artifact> filesBuilder) { + addLinkingOutputsTo(filesBuilder, true); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java index b81bf4cf45..eed3c55064 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java @@ -190,7 +190,9 @@ public class CcProtoAspect extends NativeAspectClass implements ConfiguredAspect CcLibraryHelper.Info info = helper.build(); ccLibraryProviders = info.getProviders(); outputGroups = info.getOutputGroups(); - info.addLinkingOutputsTo(filesBuilder); + // On Windows, dynamic library is not built by default, so don't add them to filesToBuild. + info.addLinkingOutputsTo( + filesBuilder, !featureConfiguration.isEnabled(CppRuleClasses.TARGETS_WINDOWS)); } private boolean areSrcsBlacklisted() { |