diff options
author | plf <plf@google.com> | 2018-07-16 01:11:04 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-16 01:12:34 -0700 |
commit | e14a7d4f156c28244a491c65083273f57734cdbe (patch) | |
tree | 63bae469d108c3d89d80c29013358dd0830f3f6e /src/main/java/com/google/devtools/build/lib/skylarkbuildapi | |
parent | a567777889fd0abc6c31818054ed18eaa918e1fe (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')
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(); } |