Convert Balls/Android.mk to Android.bp

Converted the Make file to a Soong one.

Bug: 124261647
Bug: 202563208
Test: compared the two apk files built by Make and Soong
Test: TreeHugger
Change-Id: I272fb62afff14e479ff483baf5558ce7681f93fa
diff --git a/tests/java_api/Balls/Android.bp b/tests/java_api/Balls/Android.bp
new file mode 100644
index 0000000..e931d3e
--- /dev/null
+++ b/tests/java_api/Balls/Android.bp
@@ -0,0 +1,63 @@
+//
+// Copyright (C) 2008 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+package {
+    // See: http://go/android-license-faq
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+// This variable is used to match the 'LOCAL_SDK_VERSION' field in the former Android.mk file.
+local_sdk_version = "14"
+// This variable is used to set the value of the '-target-api' option for the 'llvm-rs-cc' command.
+// Note: it may NOT always be the same as the 'local_sdk_version', due to the existing logic in the Make build system.
+// For the Android.mk to Android.bp conversion, it is recommend to run the build before and after
+// the conversion, to make sure the value of the '-target-api' option to be the same.
+target_api_level = local_sdk_version
+
+android_test {
+    name: "RsBalls",
+    srcs: [
+        "src/**/*.java",
+        ":RsBalls-rscript{RsBalls.srcjar}",
+    ],
+    resource_zips: [
+        ":RsBalls-rscript{RsBalls.res.zip}",
+    ],
+    sdk_version: local_sdk_version,
+}
+
+genrule {
+    name: "RsBalls-rscript",
+    srcs: [
+        "src/**/*.rscript",
+        ":rs_script_api",
+        ":rs_clang_headers",
+    ],
+    tools: [
+        "llvm-rs-cc",
+        "soong_zip",
+    ],
+    out: [
+        "RsBalls.srcjar",
+        "RsBalls.res.zip",
+    ],
+    cmd: "$(location llvm-rs-cc) -target-api " + target_api_level +
+        "  -o $(genDir)/res/raw -p $(genDir)/src " +
+        "  -I $$(dirname $$(echo $(locations :rs_script_api) | awk '{ print $$1 }')) " +
+        "  -I $$(dirname $$(echo $(locations :rs_clang_headers) | awk '{ print $$1 }')) $(locations src/**/*.rscript) &&" +
+        "$(location soong_zip) -srcjar -o $(location RsBalls.srcjar) -C $(genDir)/src -D $(genDir)/src &&" +
+        "$(location soong_zip) -o $(location RsBalls.res.zip) -C $(genDir)/res -D $(genDir)/res",
+}
diff --git a/tests/java_api/Balls/Android.mk b/tests/java_api/Balls/Android.mk
deleted file mode 100644
index 409c735..0000000
--- a/tests/java_api/Balls/Android.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# Copyright (C) 2008 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src)
-
-LOCAL_PACKAGE_NAME := RsBalls
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_SDK_VERSION := 14
-
-include $(BUILD_PACKAGE)