diff options
author | 2016-10-08 07:49:02 +0000 | |
---|---|---|
committer | 2016-10-10 09:54:49 +0000 | |
commit | 9c1090bcd88f187e8849a08fa7cd42246a9b5095 (patch) | |
tree | f6fb330e50ca726797cbc43e2c6eda6538486dfe /src/test/java/com | |
parent | 2837781bb9613958eba289ce1e2608dffeb6bf6e (diff) |
Fall back to compiling header-only libraries with --compile_one_dependency.
In toolchains that support parse_headers, this is the desired action. For
other toolchains, this change makes blaze try to build a header-only library
which creates the error that the header only library is not a supported target
kind. Seems like either error message is not useful/actionable.
In theory, it would be better to actually analyze whether a parse_headers is
activated, but that requires refactoring a lot of code that is currently C++
specific.
--
MOS_MIGRATED_REVID=135554761
Diffstat (limited to 'src/test/java/com')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/pkgcache/CompileOneDependencyTransformerTest.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/CompileOneDependencyTransformerTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/CompileOneDependencyTransformerTest.java index e8888d0467..7ac30babb6 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/CompileOneDependencyTransformerTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/CompileOneDependencyTransformerTest.java @@ -342,4 +342,12 @@ public class CompileOneDependencyTransformerTest extends PackageLoadingTestCase assertThat(parseListCompileOneDep("a/a.cc")) .containsExactlyElementsIn(labels("//a:foo_select")); } + + @Test + public void testFallBackToHeaderOnlyLibrary() throws Exception { + scratch.file( + "a/BUILD", + "cc_library(name = 'h', hdrs = ['a.h'], features = ['parse_headers'])"); + assertThat(parseListCompileOneDep("a/a.h")).containsExactlyElementsIn(labels("//a:h")); + } } |