aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skylarkbuildapi
diff options
context:
space:
mode:
authorGravatar plf <plf@google.com>2018-07-16 01:11:04 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-16 01:12:34 -0700
commite14a7d4f156c28244a491c65083273f57734cdbe (patch)
tree63bae469d108c3d89d80c29013358dd0830f3f6e /src/main/java/com/google/devtools/build/lib/skylarkbuildapi
parenta567777889fd0abc6c31818054ed18eaa918e1fe (diff)
C++: New functionality exposed to Skylark for external libs.
- CcLinkingInfo has a getter for CcLinkParams. - Artifacts and linkopts of CcLinkParams are accessible. - CcCompilationInfo constructor now accepts defines and include dirs. - CcCompilation now has getters for headers, defines and include dirs. CcCompiilationInfo( headers=depset([Artifacts]), defines=depset([Strings]), include_dirs=depet([Strings]) CcCompilationInfo.headers CcCompilationInfo.defines CcCompilationInfo.include_dirs -- cc_common.merge([CcLinkingInfos]) returns CcLinkingInfo -- CcLinkingInfo.static_shared_params CcLinkingInfo.static_no_shared_params CcLinkingInfo.no_static_shared_params CcLinkingInfo.no_static_no_shared_params -- CcLinkParams.libraries CcLinkParams.linkopts CcLinkParams.dynamic_libraries_for_runtime RELNOTES:none PiperOrigin-RevId: 204700779
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skylarkbuildapi')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcCompilationInfoApi.java25
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkParamsApi.java25
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingInfoApi.java28
3 files changed, 76 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcCompilationInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcCompilationInfoApi.java
index 127ebaade4..a95863989a 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcCompilationInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcCompilationInfoApi.java
@@ -15,8 +15,10 @@
package com.google.devtools.build.lib.skylarkbuildapi.cpp;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/** Interface for a wrapper of every C++ compilation provider. */
@SkylarkModule(
@@ -24,4 +26,25 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
documented = false,
category = SkylarkModuleCategory.PROVIDER,
doc = "Wrapper for every C++ compilation provider")
-public interface CcCompilationInfoApi extends StructApi {}
+public interface CcCompilationInfoApi extends StructApi {
+ @SkylarkCallable(
+ name = "defines",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ SkylarkNestedSet getSkylarkDefines();
+
+ @SkylarkCallable(
+ name = "headers",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ SkylarkNestedSet getSkylarkHeaders();
+
+ @SkylarkCallable(
+ name = "system_includes",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ SkylarkNestedSet getSkylarkDeclaredIncludeDirs();
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkParamsApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkParamsApi.java
index 2759c14370..f732819929 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkParamsApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkParamsApi.java
@@ -14,8 +14,10 @@
package com.google.devtools.build.lib.skylarkbuildapi.cpp;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/**
* Parameters that affect linking actions.
@@ -31,4 +33,25 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
documented = false,
category = SkylarkModuleCategory.BUILTIN,
doc = "Parameters that affect linking actions.")
-public interface CcLinkParamsApi {}
+public interface CcLinkParamsApi {
+ @SkylarkCallable(
+ name = "linkopts",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ SkylarkNestedSet getSkylarkLinkopts();
+
+ @SkylarkCallable(
+ name = "libraries_to_link",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ SkylarkNestedSet getSkylarkLibrariesToLink();
+
+ @SkylarkCallable(
+ name = "dynamic_libraries_for_runtime",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ SkylarkNestedSet getSkylarkDynamicLibrariesForRuntime();
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingInfoApi.java
index 12bc9368d0..590d00503e 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingInfoApi.java
@@ -36,4 +36,32 @@ public interface CcLinkingInfoApi extends StructApi {
allowReturnNones = true,
structField = true)
public CcRunfilesApi getCcRunfiles();
+
+ @SkylarkCallable(
+ name = "static_mode_params_for_dynamic_library",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ CcLinkParamsApi getStaticModeParamsForDynamicLibrary();
+
+ @SkylarkCallable(
+ name = "static_mode_params_for_executable",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ CcLinkParamsApi getStaticModeParamsForExecutable();
+
+ @SkylarkCallable(
+ name = "dynamic_mode_params_for_dynamic_library",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ CcLinkParamsApi getDynamicModeParamsForDynamicLibrary();
+
+ @SkylarkCallable(
+ name = "dynamic_mode_params_for_executable",
+ documented = false,
+ allowReturnNones = true,
+ structField = true)
+ CcLinkParamsApi getDynamicModeParamsForExecutable();
}