aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/Link.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/Link.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/Link.java26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/Link.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/Link.java
index c51a06e533..38ab7e8ccf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/Link.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/Link.java
@@ -94,32 +94,34 @@ public abstract class Link {
*/
public enum LinkTargetType {
/** A normal static archive. */
- STATIC_LIBRARY(".a", true),
+ STATIC_LIBRARY(".a", true, "c++-link-static-library"),
/** A static archive with .pic.o object files (compiled with -fPIC). */
- PIC_STATIC_LIBRARY(".pic.a", true),
+ PIC_STATIC_LIBRARY(".pic.a", true, "c++-link-pic-static-library"),
/** An interface dynamic library. */
- INTERFACE_DYNAMIC_LIBRARY(".ifso", false),
+ INTERFACE_DYNAMIC_LIBRARY(".ifso", false, "c++-link-interface-dynamic-library"),
/** A dynamic library. */
- DYNAMIC_LIBRARY(".so", false),
+ DYNAMIC_LIBRARY(".so", false, "c++-link-dynamic-library"),
/** A static archive without removal of unused object files. */
- ALWAYS_LINK_STATIC_LIBRARY(".lo", true),
+ ALWAYS_LINK_STATIC_LIBRARY(".lo", true, "c++-link-alwayslink-static-library"),
/** A PIC static archive without removal of unused object files. */
- ALWAYS_LINK_PIC_STATIC_LIBRARY(".pic.lo", true),
+ ALWAYS_LINK_PIC_STATIC_LIBRARY(".pic.lo", true, "c++-link-alwayslink-pic-static-library"),
/** An executable binary. */
- EXECUTABLE("", false);
+ EXECUTABLE("", false, "c++-link-executable");
private final String extension;
private final boolean staticLibraryLink;
+ private final String actionName;
- private LinkTargetType(String extension, boolean staticLibraryLink) {
+ private LinkTargetType(String extension, boolean staticLibraryLink, String actionName) {
this.extension = extension;
this.staticLibraryLink = staticLibraryLink;
+ this.actionName = actionName;
}
public String getExtension() {
@@ -129,6 +131,14 @@ public abstract class Link {
public boolean isStaticLibraryLink() {
return staticLibraryLink;
}
+
+ /**
+ * The name of a link action with this LinkTargetType, for the purpose of crosstool feature
+ * selection.
+ */
+ public String getActionName() {
+ return actionName;
+ }
}
/**