Collect file delta metrics for java and kotlin compiles

- Update the kotlinc and javac build rules to generate changed file
  metrics.
- Upload the aggregated metrics at build completion.
- Also fixes parsing of --inputs_file and --target to be consistent with
  existing use cases.

Bug: b/365537477
Test: manual, TH
Change-Id: I48efe06917baa98081e18b6351b63a624b55dba8
diff --git a/cmd/find_input_delta/find_input_delta/main.go b/cmd/find_input_delta/find_input_delta/main.go
index 036b239..65ef881 100644
--- a/cmd/find_input_delta/find_input_delta/main.go
+++ b/cmd/find_input_delta/find_input_delta/main.go
@@ -17,11 +17,13 @@
 import (
 	"flag"
 	"os"
-	"strings"
+	"regexp"
 
 	fid_lib "android/soong/cmd/find_input_delta/find_input_delta_lib"
 )
 
+var fileSepRegex = regexp.MustCompile("[^[:space:]]+")
+
 func main() {
 	var top string
 	var prior_state_file string
@@ -46,6 +48,8 @@
 	if target == "" {
 		panic("must specify --target")
 	}
+	// Drop any extra file names that arrived in `target`.
+	target = fileSepRegex.FindString(target)
 	if prior_state_file == "" {
 		prior_state_file = target + ".pc_state"
 	}
@@ -63,7 +67,7 @@
 		if err != nil {
 			panic(err)
 		}
-		inputs = append(inputs, strings.Split(string(data), "\n")...)
+		inputs = append(inputs, fileSepRegex.FindAllString(string(data), -1)...)
 	}
 
 	// Read the prior state
diff --git a/cmd/find_input_delta/find_input_delta_proto_internal/regen.sh b/cmd/find_input_delta/find_input_delta_proto_internal/regen.sh
old mode 100644
new mode 100755
diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go
index 9721794..c119823 100644
--- a/cmd/soong_ui/main.go
+++ b/cmd/soong_ui/main.go
@@ -215,8 +215,7 @@
 		emet.Dump(executionMetricsFile, args)
 		// If there are execution metrics, upload them.
 		if _, err := os.Stat(executionMetricsFile); err == nil {
-			// TODO: Upload the metrics file.
-			// metricsFiles = append(metricsFiles, executionMetricsFile)
+			metricsFiles = append(metricsFiles, executionMetricsFile)
 		}
 		if !config.SkipMetricsUpload() {
 			build.UploadMetrics(buildCtx, config, c.simpleOutput, buildStarted, metricsFiles...)