aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
diff options
context:
space:
mode:
authorGravatar juliexxia <juliexxia@google.com>2018-06-14 08:27:30 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-14 08:28:50 -0700
commit0c7e80c5491d3207181566c0b17b0d63fc415e14 (patch)
treed3af9ed7ca3e967d82319895b705bbc11e0173bf /src/main/java/com/google/devtools/build/lib/rules/cpp
parent3695591d4b40497380640d7886c55a00d4d3fd70 (diff)
Expose new methods in CcToolchainProvider to eventually replace skylark callables that depend on CToolchain in CppConfiguration.
PiperOrigin-RevId: 200559893
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
index 615193d837..02dcdbeca8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -968,7 +968,67 @@ public final class CcToolchainProvider extends ToolchainInfo implements CcToolch
return CppHelper.getDynamicLinkOptions(cppConfiguration, this, sharedLib);
}
+ /**
+ * WARNING: This method is only added to allow incremental migration of existing users. Please do
+ * not use in new code. Will be removed soon as part of the new Skylark API to the C++ toolchain.
+ *
+ * Returns the execution path to the linker binary to use for this build. Relative paths are
+ * relative to the execution root.
+ */
+ @Override
+ public String getLdExecutableForSkylark() {
+ PathFragment ldExecutable = getToolPathFragment(CppConfiguration.Tool.LD);
+ return ldExecutable != null ? ldExecutable.getPathString() : "";
+ }
+
+ /**
+ * WARNING: This method is only added to allow incremental migration of existing users. Please do
+ * not use in new code. Will be removed soon as part of the new Skylark API to the C++ toolchain.
+ *
+ * Returns the path to the GNU binutils 'objcopy' binary to use for this build. (Corresponds to
+ * $(OBJCOPY) in make-dbg.) Relative paths are relative to the execution root.
+ */
+ @Override
+ public String getObjCopyExecutableForSkylark() {
+ PathFragment objCopyExecutable = getToolPathFragment(Tool.OBJCOPY);
+ return objCopyExecutable != null ? objCopyExecutable.getPathString() : "";
+ }
+
+ @Override
+ public String getCppExecutableForSkylark() {
+ PathFragment cppExecutable = getToolPathFragment(Tool.GCC);
+ return cppExecutable != null ? cppExecutable.getPathString() : "";
+ }
+
+ @Override
+ public String getCpreprocessorExecutableForSkylark() {
+ PathFragment cpreprocessorExecutable = getToolPathFragment(Tool.CPP);
+ return cpreprocessorExecutable != null ? cpreprocessorExecutable.getPathString() : "";
+ }
+
+ @Override
+ public String getNmExecutableForSkylark() {
+ PathFragment nmExecutable = getToolPathFragment(Tool.NM);
+ return nmExecutable != null ? nmExecutable.getPathString() : "";
+ }
+ @Override
+ public String getObjdumpExecutableForSkylark() {
+ PathFragment objdumpExecutable = getToolPathFragment(Tool.OBJDUMP);
+ return objdumpExecutable != null ? objdumpExecutable.getPathString() : "";
+ }
+
+ @Override
+ public String getArExecutableForSkylark() {
+ PathFragment arExecutable = getToolPathFragment(Tool.AR);
+ return arExecutable != null ? arExecutable.getPathString() : "";
+ }
+
+ @Override
+ public String getStripExecutableForSkylark() {
+ PathFragment stripExecutable = getToolPathFragment(Tool.STRIP);
+ return stripExecutable != null ? stripExecutable.getPathString() : "";
+ }
// Not all of CcToolchainProvider is exposed to Skylark, which makes implementing deep equality
// impossible: if Java-only parts are considered, the behavior is surprising in Skylark, if they