Support three options for converting modules with unconverted dependencies 1. (default) Warn when converting a module if it has unconverted deps. 2. Error when encountering a module with unconverted deps. (not hooked up yet) Test: build/bazel/ci/bp2build.sh Test: build/bazel/ci/mixed_libc.sh Test: BP2BUILD_ERROR_UNCONVERTED=1 build/bazel/ci/bp2build.sh with unconverted deps -- get appropriate error Bug: 181155349 Change-Id: Ifaabf0cd2e43e963366dc137159c705294165c3d
40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package bp2build
|
|
|
|
import (
|
|
"android/soong/android"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// Simple metrics struct to collect information about a Blueprint to BUILD
|
|
// conversion process.
|
|
type CodegenMetrics struct {
|
|
// Total number of Soong/Blueprint modules
|
|
TotalModuleCount int
|
|
|
|
// Counts of generated Bazel targets per Bazel rule class
|
|
RuleClassCount map[string]int
|
|
|
|
// Total number of handcrafted targets
|
|
handCraftedTargetCount int
|
|
|
|
moduleWithUnconvertedDepsMsgs []string
|
|
}
|
|
|
|
// Print the codegen metrics to stdout.
|
|
func (metrics CodegenMetrics) Print() {
|
|
generatedTargetCount := 0
|
|
for _, ruleClass := range android.SortedStringKeys(metrics.RuleClassCount) {
|
|
count := metrics.RuleClassCount[ruleClass]
|
|
fmt.Printf("[bp2build] %s: %d targets\n", ruleClass, count)
|
|
generatedTargetCount += count
|
|
}
|
|
fmt.Printf(
|
|
"[bp2build] Generated %d total BUILD targets and included %d handcrafted BUILD targets from %d Android.bp modules.\n With %d modules with unconverted deps \n\t%s",
|
|
generatedTargetCount,
|
|
metrics.handCraftedTargetCount,
|
|
metrics.TotalModuleCount,
|
|
len(metrics.moduleWithUnconvertedDepsMsgs),
|
|
strings.Join(metrics.moduleWithUnconvertedDepsMsgs, "\n\t"))
|
|
}
|