aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-10-08 07:49:02 +0000
committerGravatar Yue Gan <yueg@google.com>2016-10-10 09:54:49 +0000
commit9c1090bcd88f187e8849a08fa7cd42246a9b5095 (patch)
treef6fb330e50ca726797cbc43e2c6eda6538486dfe /src/test/java/com
parent2837781bb9613958eba289ce1e2608dffeb6bf6e (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.java8
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"));
+ }
}