diff options
author | plf <plf@google.com> | 2018-07-02 06:50:30 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-02 06:51:54 -0700 |
commit | 95a40bea2d0488ba3afc803b9082b16cadef1deb (patch) | |
tree | e3c00515980ebb47d368aa67bed791125c5972de /src/main/java/com/google/devtools/build/lib/bazel | |
parent | c7a01554d0fa01aab41577e241ae262fdda45d95 (diff) |
C++: Exposes C++ Skylark providers to Bazel
RELNOTES:none
PiperOrigin-RevId: 202943806
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/bazel')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java | 4 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java index f4efdad6a6..eb8c6a9a56 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java @@ -22,9 +22,11 @@ import com.google.devtools.build.lib.bazel.rules.cpp.BazelCcLibraryRule; import com.google.devtools.build.lib.bazel.rules.cpp.BazelCcTestRule; import com.google.devtools.build.lib.bazel.rules.cpp.BazelCppRuleClasses; import com.google.devtools.build.lib.rules.core.CoreRules; +import com.google.devtools.build.lib.rules.cpp.CcCompilationInfo; import com.google.devtools.build.lib.rules.cpp.CcHostToolchainAliasRule; import com.google.devtools.build.lib.rules.cpp.CcImportRule; import com.google.devtools.build.lib.rules.cpp.CcLibcTopAlias; +import com.google.devtools.build.lib.rules.cpp.CcLinkingInfo; import com.google.devtools.build.lib.rules.cpp.CcModule; import com.google.devtools.build.lib.rules.cpp.CcToolchainAliasRule; import com.google.devtools.build.lib.rules.cpp.CcToolchainRule; @@ -76,6 +78,8 @@ public class CcRules implements RuleSet { builder.addRuleDefinition(new FdoPrefetchHintsRule()); builder.addSkylarkBootstrap(new CcBootstrap(new CcModule())); + builder.addSkylarkAccessibleTopLevels("CcCompilationInfo", CcCompilationInfo.PROVIDER); + builder.addSkylarkAccessibleTopLevels("CcLinkingInfo", CcLinkingInfo.PROVIDER); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java index a026a0a1b3..6a7219c68f 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java @@ -52,7 +52,9 @@ import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplicitOutputsFunction; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; +import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; import com.google.devtools.build.lib.packages.TriState; +import com.google.devtools.build.lib.rules.cpp.CcModule.CcSkylarkInfo; import com.google.devtools.build.lib.rules.cpp.CcToolchain; import com.google.devtools.build.lib.rules.cpp.CppConfiguration; import com.google.devtools.build.lib.rules.cpp.CppFileTypes; @@ -349,7 +351,9 @@ public class BazelCppRuleClasses { attr("deps", LABEL_LIST) .allowedRuleClasses(DEPS_ALLOWED_RULES) .allowedFileTypes(CppFileTypes.LINKER_SCRIPT) - .skipAnalysisTimeFileTypeCheck()) + .skipAnalysisTimeFileTypeCheck() + .mandatoryProviders( + SkylarkProviderIdentifier.forKey(CcSkylarkInfo.PROVIDER.getKey()))) /*<!-- #BLAZE_RULE($cc_rule).ATTRIBUTE(win_def_file) --> The Windows DEF file to be passed to linker. <p>This attribute should only be used when Windows is the target platform. |