From 4945a032a0ecfc0c9687da6678786a0278aa6554 Mon Sep 17 00:00:00 2001 From: Yuntao Xu Date: Tue, 18 May 2021 13:33:29 -0700 Subject: [PATCH] Convert HelloCompute/Android.mk to Android.bp 1. converted the Make file to a Soong one; 2. handled the .rscript files by genrule (to include the same commands used when build with the former .mk file); 3. the differences observed in the apks before and after the conversion are the same as in http://b/186244109, which should not affect the conversion here; 4. the same result was observed when run the two apks on a physical phone(Pixel 3a XL (bonito)); 5. test commands: mma -j RsHelloCompute adb install -r ~/aosp/out/target/product/bonito/system/app/RsHelloCompute/RsHelloCompute.apk adb shell am start -S -n com.example.android.rs.hellocompute/.HelloCompute Bug: 124261647 Test: compared the two apk files built by Make and Soong Test: run two apks on a Pixel 3a XL (bonito) phone Test: TreeHugger Change-Id: I93a536ccedd9abe5ceb99d73d96668f0a861fb51 --- samples/RenderScript/HelloCompute/Android.bp | 65 ++++++++++++++++++++ samples/RenderScript/HelloCompute/Android.mk | 30 --------- 2 files changed, 65 insertions(+), 30 deletions(-) create mode 100644 samples/RenderScript/HelloCompute/Android.bp delete mode 100644 samples/RenderScript/HelloCompute/Android.mk diff --git a/samples/RenderScript/HelloCompute/Android.bp b/samples/RenderScript/HelloCompute/Android.bp new file mode 100644 index 000000000..76a82b983 --- /dev/null +++ b/samples/RenderScript/HelloCompute/Android.bp @@ -0,0 +1,65 @@ +// +// Copyright (C) 2011 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_app { + name: "RsHelloCompute", + srcs: [ + "src/**/*.java", + ":RsHelloCompute-rscript{RsHelloCompute.srcjar}", + ], + resource_zips: [ + ":RsHelloCompute-rscript{RsHelloCompute.res.zip}", + ], + sdk_version: local_sdk_version, +} + +genrule { + name: "RsHelloCompute-rscript", + srcs: [ + "src/**/*.rscript", + ":rs_script_api", + ":rs_clang_headers", + ], + tools: [ + "llvm-rs-cc", + "soong_zip", + ], + out: [ + "RsHelloCompute.srcjar", + "RsHelloCompute.res.zip", + ], + cmd: "for f in $(locations src/**/*.rscript); do " + + " $(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 }')) $${f}; " + + "done && " + + "$(location soong_zip) -srcjar -o $(location RsHelloCompute.srcjar) -C $(genDir)/src -D $(genDir)/src &&" + + "$(location soong_zip) -o $(location RsHelloCompute.res.zip) -C $(genDir)/res -D $(genDir)/res", +} diff --git a/samples/RenderScript/HelloCompute/Android.mk b/samples/RenderScript/HelloCompute/Android.mk deleted file mode 100644 index cc5281c8c..000000000 --- a/samples/RenderScript/HelloCompute/Android.mk +++ /dev/null @@ -1,30 +0,0 @@ -# -# Copyright (C) 2011 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 := optional - -LOCAL_SRC_FILES := $(call all-java-files-under, src) \ - $(call all-renderscript-files-under, src) - -LOCAL_PACKAGE_NAME := RsHelloCompute -LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 -LOCAL_LICENSE_CONDITIONS := notice -LOCAL_SDK_VERSION := 14 - -include $(BUILD_PACKAGE)