aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/python/PyCcLinkParamsProvider.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java6
2 files changed, 24 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCcLinkParamsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCcLinkParamsProvider.java
index 68d246d6b1..67be6aeda7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCcLinkParamsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCcLinkParamsProvider.java
@@ -15,29 +15,44 @@ package com.google.devtools.build.lib.rules.python;
import com.google.common.base.Function;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.packages.NativeInfo;
+import com.google.devtools.build.lib.packages.NativeProvider;
import com.google.devtools.build.lib.rules.cpp.AbstractCcLinkParamsStore;
import com.google.devtools.build.lib.rules.cpp.CcLinkingInfo;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
/** A target that provides C++ libraries to be linked into Python targets. */
@Immutable
@AutoCodec
-public final class PyCcLinkParamsProvider implements TransitiveInfoProvider {
+@SkylarkModule(
+ name = "PyCcLinkParamsProvider",
+ documented = false,
+ category = SkylarkModuleCategory.PROVIDER,
+ doc = "Wrapper for every C++ linking provider")
+public final class PyCcLinkParamsProvider extends NativeInfo {
+ public static final NativeProvider<PyCcLinkParamsProvider> PROVIDER =
+ new NativeProvider<PyCcLinkParamsProvider>(
+ PyCcLinkParamsProvider.class, "PyCcLinkParamsProvider") {};
+
private final CcLinkingInfo ccLinkingInfo;
public PyCcLinkParamsProvider(CcLinkingInfo ccLinkingInfo) {
+ super(PROVIDER);
this.ccLinkingInfo = ccLinkingInfo;
}
+ @SkylarkCallable(name = "cc_linking_info", doc = "", documented = false)
public CcLinkingInfo getCcLinkingInfo() {
return ccLinkingInfo;
}
public static final Function<TransitiveInfoCollection, AbstractCcLinkParamsStore> TO_LINK_PARAMS =
input -> {
- PyCcLinkParamsProvider provider = input.getProvider(PyCcLinkParamsProvider.class);
+ PyCcLinkParamsProvider provider = input.get(PyCcLinkParamsProvider.PROVIDER);
return provider == null ? null : provider.getCcLinkingInfo().getCcLinkParamsStore();
};
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
index b152c7a745..4118856f1e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
@@ -21,6 +21,8 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.util.OS;
import com.google.devtools.common.options.TriState;
import java.util.Arrays;
@@ -32,6 +34,10 @@ import java.util.List;
*/
@AutoCodec
@Immutable
+@SkylarkModule(
+ name = "py",
+ doc = "A configuration fragment for SWIG.",
+ category = SkylarkModuleCategory.CONFIGURATION_FRAGMENT)
public class PythonConfiguration extends BuildConfiguration.Fragment {
private final boolean ignorePythonVersionAttribute;
private final PythonVersion defaultPythonVersion;