Add a new CreateSoongInjectionDirFiles function
- This is a wrapper function for all files in soong_injection directory. This should prevent an error in the workspace generated for api_bp2build. - Rename the existing CreateSoongInjectionFiles fn and make it package private to prevent confusion (The subsequent CL in this stack should contain a smoke test for api_bp2build) Test: b build //:empty --config=api_bp2build --config=android Test: TH Change-Id: Iddb0aa1aff2f709826edd587aa99fccddf80f08f
This commit is contained in:
@@ -45,17 +45,27 @@ func Codegen(ctx *CodegenContext) *CodegenMetrics {
|
||||
bp2buildFiles := CreateBazelFiles(ctx.Config(), nil, res.buildFileToTargets, ctx.mode)
|
||||
writeFiles(ctx, bp2buildDir, bp2buildFiles)
|
||||
|
||||
soongInjectionDir := android.PathForOutput(ctx, bazel.SoongInjectionDirName)
|
||||
writeFiles(ctx, soongInjectionDir, CreateSoongInjectionDirFiles(ctx, res.metrics))
|
||||
|
||||
return &res.metrics
|
||||
}
|
||||
|
||||
// Wrapper function that will be responsible for all files in soong_injection directory
|
||||
// This includes
|
||||
// 1. config value(s) that are hardcoded in Soong
|
||||
// 2. product_config variables
|
||||
func CreateSoongInjectionDirFiles(ctx *CodegenContext, metrics CodegenMetrics) []BazelFile {
|
||||
var ret []BazelFile
|
||||
|
||||
productConfigFiles, err := CreateProductConfigFiles(ctx)
|
||||
if err != nil {
|
||||
fmt.Printf("ERROR: %s", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
soongInjectionDir := android.PathForOutput(ctx, bazel.SoongInjectionDirName)
|
||||
writeFiles(ctx, soongInjectionDir, productConfigFiles)
|
||||
writeFiles(ctx, soongInjectionDir, CreateSoongInjectionFiles(ctx.Config(), res.metrics))
|
||||
|
||||
return &res.metrics
|
||||
ret = append(ret, productConfigFiles...)
|
||||
ret = append(ret, soongInjectionFiles(ctx.Config(), metrics)...)
|
||||
return ret
|
||||
}
|
||||
|
||||
// Get the output directory and create it if it doesn't exist.
|
||||
|
@@ -20,7 +20,8 @@ type BazelFile struct {
|
||||
Contents string
|
||||
}
|
||||
|
||||
func CreateSoongInjectionFiles(cfg android.Config, metrics CodegenMetrics) []BazelFile {
|
||||
// PRIVATE: Use CreateSoongInjectionDirFiles instead
|
||||
func soongInjectionFiles(cfg android.Config, metrics CodegenMetrics) []BazelFile {
|
||||
var files []BazelFile
|
||||
|
||||
files = append(files, newFile("android", GeneratedBuildFileName, "")) // Creates a //cc_toolchain package.
|
||||
|
@@ -84,7 +84,7 @@ func TestCreateBazelFiles_QueryView_AddsTopLevelFiles(t *testing.T) {
|
||||
|
||||
func TestCreateBazelFiles_Bp2Build_CreatesDefaultFiles(t *testing.T) {
|
||||
testConfig := android.TestConfig("", make(map[string]string), "", make(map[string][]byte))
|
||||
files := CreateSoongInjectionFiles(testConfig, CreateCodegenMetrics())
|
||||
files := soongInjectionFiles(testConfig, CreateCodegenMetrics())
|
||||
|
||||
expectedFilePaths := []bazelFilepath{
|
||||
{
|
||||
|
@@ -176,7 +176,7 @@ func runApiBp2build(ctx *android.Context, extraNinjaDeps []string) string {
|
||||
ninjaDeps = append(ninjaDeps, codegenContext.AdditionalNinjaDeps()...)
|
||||
|
||||
// Create soong_injection repository
|
||||
soongInjectionFiles := bp2build.CreateSoongInjectionFiles(ctx.Config(), bp2build.CreateCodegenMetrics())
|
||||
soongInjectionFiles := bp2build.CreateSoongInjectionDirFiles(codegenContext, bp2build.CreateCodegenMetrics())
|
||||
absoluteSoongInjectionDir := shared.JoinPath(topDir, ctx.Config().SoongOutDir(), bazel.SoongInjectionDirName)
|
||||
for _, file := range soongInjectionFiles {
|
||||
// The API targets in api_bp2build workspace do not have any dependency on api_bp2build.
|
||||
|
Reference in New Issue
Block a user