diff options
author | Marcel Hlopko <hlopko@google.com> | 2017-01-05 15:31:04 +0000 |
---|---|---|
committer | John Cater <jcater@google.com> | 2017-01-05 16:20:47 +0000 |
commit | 2919950691c61086c1678d3ae181ff381e67ffdb (patch) | |
tree | 0bbe1a40967e794bb1948e54d7fffbb58cbfd8ad /src | |
parent | 116d039ccb49ec71c2ea9626d8a0a0aee5cbabc0 (diff) |
Introduce is_cc_test_link_action build variable
--
PiperOrigin-RevId: 143664295
MOS_MIGRATED_REVID=143664295
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java | 7 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java | 20 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java index 1aa41edb0f..f82c35b162 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java @@ -112,6 +112,9 @@ public class CppLinkActionBuilder { /** A build variable whose presence indicates that PIC code should be generated. */ public static final String FORCE_PIC_VARIABLE = "force_pic"; + /** A build variable whose presence indicates that this action is a cc_test linking action. */ + public static final String IS_CC_TEST_LINK_ACTION_VARIABLE = "is_cc_test_link_action"; + // Builder-only // Null when invoked from tests (e.g. via createTestBuilder). @Nullable private final RuleContext ruleContext; @@ -1281,6 +1284,10 @@ public class CppLinkActionBuilder { buildVariables.addStringVariable(FORCE_PIC_VARIABLE, ""); } + if (useTestOnlyFlags()) { + buildVariables.addStringVariable(IS_CC_TEST_LINK_ACTION_VARIABLE, ""); + } + // rpath if (linkArgCollector.getRpathRoot() != null) { buildVariables.addStringVariable( diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java index f789163ecd..633ae48b5c 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java @@ -225,4 +225,24 @@ public class LinkBuildVariablesTest extends BuildViewTestCase { assertThat(interfaceLibraryOutput).endsWith("ignored"); assertThat(interfaceLibraryBuilder).endsWith("ignored"); } + + @Test + public void testIsCcTestLinkActionBuildVariable() throws Exception { + scratch.file("x/BUILD", + "cc_test(name = 'foo_test', srcs = ['a.cc'])", + "cc_binary(name = 'foo', srcs = ['a.cc'])"); + scratch.file("x/a.cc"); + + ConfiguredTarget testTarget = getConfiguredTarget("//x:foo_test"); + Variables testVariables = getLinkBuildVariables(testTarget, LinkTargetType.EXECUTABLE); + + assertThat(testVariables.isAvailable(CppLinkActionBuilder.IS_CC_TEST_LINK_ACTION_VARIABLE)) + .isTrue(); + + ConfiguredTarget binaryTarget = getConfiguredTarget("//x:foo"); + Variables binaryVariables = getLinkBuildVariables(binaryTarget, LinkTargetType.EXECUTABLE); + + assertThat(binaryVariables.isAvailable(CppLinkActionBuilder.IS_CC_TEST_LINK_ACTION_VARIABLE)) + .isFalse(); + } } |