From e14a7d4f156c28244a491c65083273f57734cdbe Mon Sep 17 00:00:00 2001 From: plf Date: Mon, 16 Jul 2018 01:11:04 -0700 Subject: 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 --- .../skylarkbuildapi/cpp/CcCompilationInfoApi.java | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcCompilationInfoApi.java') 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(); +} -- cgit v1.2.3