Loading bp2build/cc_library_static_conversion_test.go +34 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,9 @@ func TestCcLibraryStaticBp2Build(t *testing.T) { "export_include_dir_1/export_include_dir_1_b.h": "", "export_include_dir_2/export_include_dir_2_a.h": "", "export_include_dir_2/export_include_dir_2_b.h": "", // NOTE: Soong implicitly includes headers in the current directory "implicit_include_1.h": "", "implicit_include_2.h": "", }, bp: soongCcLibraryStaticPreamble + ` cc_library_headers { Loading Loading @@ -203,34 +206,65 @@ cc_library_static { "include_dir_2", "local_include_dir_1", "local_include_dir_2", ".", ], linkstatic = True, srcs = [ "foo_static1.cc", "foo_static2.cc", "implicit_include_1.h", "implicit_include_2.h", "include_dir_1/include_dir_1_a.h", "include_dir_1/include_dir_1_b.h", "include_dir_2/include_dir_2_a.h", "include_dir_2/include_dir_2_b.h", "local_include_dir_1/local_include_dir_1_a.h", "local_include_dir_1/local_include_dir_1_b.h", "local_include_dir_2/local_include_dir_2_a.h", "local_include_dir_2/local_include_dir_2_b.h", ], )`, `cc_library_static( name = "static_lib_1", includes = [ ".", ], linkstatic = True, srcs = [ "implicit_include_1.h", "implicit_include_2.h", "static_lib_1.cc", ], )`, `cc_library_static( name = "static_lib_2", includes = [ ".", ], linkstatic = True, srcs = [ "implicit_include_1.h", "implicit_include_2.h", "static_lib_2.cc", ], )`, `cc_library_static( name = "whole_static_lib_1", includes = [ ".", ], linkstatic = True, srcs = [ "implicit_include_1.h", "implicit_include_2.h", "whole_static_lib_1.cc", ], )`, `cc_library_static( name = "whole_static_lib_2", includes = [ ".", ], linkstatic = True, srcs = [ "implicit_include_1.h", "implicit_include_2.h", "whole_static_lib_2.cc", ], )`}, Loading cc/library.go +17 −2 Original line number Diff line number Diff line Loading @@ -2104,7 +2104,22 @@ func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { break } } srcsLabels := bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, srcs)) // Soong implicitly includes headers from the module's directory. // For Bazel builds to work we have to make these header includes explicit. if module.compiler.(*libraryDecorator).includeBuildDirectory() { localIncludeDirs = append(localIncludeDirs, ".") } srcsLabels := android.BazelLabelForModuleSrc(ctx, srcs) // For Bazel, be more explicit about headers - list all header files in include dirs as srcs for _, includeDir := range includeDirs { srcsLabels.Append(bp2BuildListHeadersInDir(ctx, includeDir)) } for _, localIncludeDir := range localIncludeDirs { srcsLabels.Append(bp2BuildListHeadersInDir(ctx, localIncludeDir)) } var staticLibs []string var wholeStaticLibs []string Loading Loading @@ -2135,7 +2150,7 @@ func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { attrs := &bazelCcLibraryStaticAttributes{ Copts: copts, Srcs: srcsLabels, Srcs: bazel.MakeLabelListAttribute(srcsLabels), Deps: bazel.MakeLabelListAttribute(depsLabels), Linkstatic: true, Includes: allIncludes, Loading Loading
bp2build/cc_library_static_conversion_test.go +34 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,9 @@ func TestCcLibraryStaticBp2Build(t *testing.T) { "export_include_dir_1/export_include_dir_1_b.h": "", "export_include_dir_2/export_include_dir_2_a.h": "", "export_include_dir_2/export_include_dir_2_b.h": "", // NOTE: Soong implicitly includes headers in the current directory "implicit_include_1.h": "", "implicit_include_2.h": "", }, bp: soongCcLibraryStaticPreamble + ` cc_library_headers { Loading Loading @@ -203,34 +206,65 @@ cc_library_static { "include_dir_2", "local_include_dir_1", "local_include_dir_2", ".", ], linkstatic = True, srcs = [ "foo_static1.cc", "foo_static2.cc", "implicit_include_1.h", "implicit_include_2.h", "include_dir_1/include_dir_1_a.h", "include_dir_1/include_dir_1_b.h", "include_dir_2/include_dir_2_a.h", "include_dir_2/include_dir_2_b.h", "local_include_dir_1/local_include_dir_1_a.h", "local_include_dir_1/local_include_dir_1_b.h", "local_include_dir_2/local_include_dir_2_a.h", "local_include_dir_2/local_include_dir_2_b.h", ], )`, `cc_library_static( name = "static_lib_1", includes = [ ".", ], linkstatic = True, srcs = [ "implicit_include_1.h", "implicit_include_2.h", "static_lib_1.cc", ], )`, `cc_library_static( name = "static_lib_2", includes = [ ".", ], linkstatic = True, srcs = [ "implicit_include_1.h", "implicit_include_2.h", "static_lib_2.cc", ], )`, `cc_library_static( name = "whole_static_lib_1", includes = [ ".", ], linkstatic = True, srcs = [ "implicit_include_1.h", "implicit_include_2.h", "whole_static_lib_1.cc", ], )`, `cc_library_static( name = "whole_static_lib_2", includes = [ ".", ], linkstatic = True, srcs = [ "implicit_include_1.h", "implicit_include_2.h", "whole_static_lib_2.cc", ], )`}, Loading
cc/library.go +17 −2 Original line number Diff line number Diff line Loading @@ -2104,7 +2104,22 @@ func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { break } } srcsLabels := bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, srcs)) // Soong implicitly includes headers from the module's directory. // For Bazel builds to work we have to make these header includes explicit. if module.compiler.(*libraryDecorator).includeBuildDirectory() { localIncludeDirs = append(localIncludeDirs, ".") } srcsLabels := android.BazelLabelForModuleSrc(ctx, srcs) // For Bazel, be more explicit about headers - list all header files in include dirs as srcs for _, includeDir := range includeDirs { srcsLabels.Append(bp2BuildListHeadersInDir(ctx, includeDir)) } for _, localIncludeDir := range localIncludeDirs { srcsLabels.Append(bp2BuildListHeadersInDir(ctx, localIncludeDir)) } var staticLibs []string var wholeStaticLibs []string Loading Loading @@ -2135,7 +2150,7 @@ func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { attrs := &bazelCcLibraryStaticAttributes{ Copts: copts, Srcs: srcsLabels, Srcs: bazel.MakeLabelListAttribute(srcsLabels), Deps: bazel.MakeLabelListAttribute(depsLabels), Linkstatic: true, Includes: allIncludes, Loading