diff options
author | 2016-02-03 21:02:56 +0000 | |
---|---|---|
committer | 2016-02-03 22:07:18 +0000 | |
commit | 2dae2f6b4cd3182a1fbdbd17ef0726aee4bc3b70 (patch) | |
tree | 085e462372b9d4392c76057bceac824e94f6bb44 /src/test/java/com/google/devtools/build | |
parent | c1a6422a42b32c784c8dba0cf6b901c0b5dfbe93 (diff) |
Do not compile source files mentioned in 'hdrs'.
Currently for a library:
cc_library(name='a', hdrs=['a.cc'])
we compile a.cc into a.pic.o and link that into its reverse dependencies.
With this change, a .cc file in hdrs will be treated like a .inc file or
a file in textual_hd...
--
MOS_MIGRATED_REVID=113773418
Diffstat (limited to 'src/test/java/com/google/devtools/build')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java | 8 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java | 22 |
2 files changed, 26 insertions, 4 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java index ad23526dd9..b4e87827f2 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java @@ -85,27 +85,27 @@ public final class BazelMockCcSupport extends MockCcSupport { "cc_toolchain(name = 'cc-compiler-k8', all_files = ':empty', compiler_files = ':empty',", " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", " linker_files = ':empty',", - " module_map = 'crosstool.cppmap',", + " module_map = 'crosstool.cppmap', supports_header_parsing = 1,", " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", ")", "cc_toolchain(name = 'cc-compiler-piii', all_files = ':empty', compiler_files = ':empty',", " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", " linker_files = ':empty',", - " module_map = 'crosstool.cppmap',", + " module_map = 'crosstool.cppmap', supports_header_parsing = 1,", " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", ")", "cc_toolchain(name = 'cc-compiler-darwin', all_files = ':empty', ", " compiler_files = ':empty',", " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", " linker_files = ':empty',", - " module_map = 'crosstool.cppmap',", + " module_map = 'crosstool.cppmap', supports_header_parsing = 1,", " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", ")", "cc_toolchain(name = 'cc-compiler-armeabi-v7a', all_files = ':empty', ", " compiler_files = ':empty',", " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", " linker_files = ':empty',", - " module_map = 'crosstool.cppmap',", + " module_map = 'crosstool.cppmap', supports_header_parsing = 1,", " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", ")"); diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java index 1dad94f569..5d8c0fce4c 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java @@ -668,6 +668,28 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { } @Test + public void testAllowDuplicateNonCompiledSources() throws Exception { + ConfiguredTarget x = + scratchConfiguredTarget( + "x", + "x", + "filegroup(name = 'xso', srcs = ['x.so'])", + "cc_library(name = 'x', srcs = ['x.so', ':xso'])"); + assertThat(x).isNotNull(); + } + + @Test + public void testDoNotCompileSourceFilesInHeaders() throws Exception { + AnalysisMock.get() + .ccSupport() + .setupCrosstool(mockToolsConfig, MockCcSupport.HEADER_PROCESSING_FEATURE_CONFIGURATION); + useConfiguration("--features=parse_headers"); + ConfiguredTarget x = + scratchConfiguredTarget("x", "x", "cc_library(name = 'x', hdrs = ['x.cc'])"); + assertThat(getGeneratingAction(getBinArtifact("_objs/x/x/x.pic.o", x))).isNull(); + } + + @Test public void testIncludePathOrder() throws Exception { scratch.file("foo/BUILD", "cc_library(", |