aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2018-06-13 04:54:12 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-13 04:55:07 -0700
commit8f5b096c0aeef427c08398e6c3ecf8befec7fded (patch)
tree5437902ea618fb273e0f589df9711d66301a2e0f /src/main/java/com/google/devtools/build/lib/rules/cpp
parent6c282b9ec2d2b11108b038e8551f26fa961c0538 (diff)
Return Strings from C++ Skylark APIs, not PathFragments
PathFragments are not well supported in Skylark, quite the opposite, the Skylark team tries hard to not use path fragments if possible. All existing users I looked into had to convert the PathFragment to string using str() anyway. Because of that this cl should not break anybody. RELNOTES: None. PiperOrigin-RevId: 200372447
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.java14
1 files changed, 10 insertions, 4 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 5143691164..615193d837 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
@@ -45,8 +45,7 @@ import javax.annotation.Nullable;
/** Information about a C++ compiler used by the <code>cc_*</code> rules. */
@Immutable
@AutoCodec
-public final class CcToolchainProvider extends ToolchainInfo
- implements CcToolchainProviderApi<PathFragment> {
+public final class CcToolchainProvider extends ToolchainInfo implements CcToolchainProviderApi {
public static final String SKYLARK_NAME = "CcToolchainInfo";
/** An empty toolchain to be returned in the error case (instead of null). */
@@ -289,6 +288,13 @@ public final class CcToolchainProvider extends ToolchainInfo
}
@Override
+ public ImmutableList<String> getBuiltInIncludeDirectoriesAsStrings() {
+ return builtInIncludeDirectories
+ .stream()
+ .map(PathFragment::getSafePathString)
+ .collect(ImmutableList.toImmutableList());
+ }
+
public ImmutableList<PathFragment> getBuiltInIncludeDirectories() {
return builtInIncludeDirectories;
}
@@ -582,8 +588,8 @@ public final class CcToolchainProvider extends ToolchainInfo
}
@Override
- public PathFragment getSysroot() {
- return sysroot;
+ public String getSysroot() {
+ return sysroot != null ? sysroot.getPathString() : null;
}
/**