diff --git a/bazel/cquery/request_type.go b/bazel/cquery/request_type.go index e4830d39d..118a3a907 100644 --- a/bazel/cquery/request_type.go +++ b/bazel/cquery/request_type.go @@ -33,6 +33,7 @@ type CcInfo struct { TidyFiles []string TocFile string UnstrippedOutput string + AbiDiffFiles []string } type getOutputFilesRequestType struct{} @@ -174,6 +175,11 @@ clang_tidy_info = p.get("//build/bazel/rules/cc:clang_tidy.bzl%ClangTidyInfo") if clang_tidy_info: tidy_files = [v.path for v in clang_tidy_info.tidy_files.to_list()] +abi_diff_files = [] +abi_diff_info = p.get("//build/bazel/rules/abi:abi_dump.bzl%AbiDiffInfo") +if abi_diff_info: + abi_diff_files = [f.path for f in abi_diff_info.diff_files.to_list()] + return json_encode({ "OutputFiles": outputFiles, "CcObjectFiles": ccObjectFiles, @@ -187,6 +193,7 @@ return json_encode({ "TidyFiles": tidy_files, "TocFile": toc_file, "UnstrippedOutput": unstripped, + "AbiDiffFiles": abi_diff_files, })` } diff --git a/cc/library.go b/cc/library.go index 1cad6b90b..365f3922c 100644 --- a/cc/library.go +++ b/cc/library.go @@ -898,6 +898,10 @@ func (handler *ccLibraryBazelHandler) generateSharedBazelBuildActions(ctx androi } handler.module.linker.(*libraryDecorator).tocFile = tocFile + if len(ccInfo.AbiDiffFiles) > 0 { + handler.module.linker.(*libraryDecorator).sAbiDiff = android.PathsForBazelOut(ctx, ccInfo.AbiDiffFiles) + } + ctx.SetProvider(SharedLibraryInfoProvider, SharedLibraryInfo{ TableOfContents: tocFile, SharedLibrary: outputFilePath,