Generate VTS driver lib directly from .hal files (for NFC)
Test: mma
Bug: 31930023
Change-Id: Ic8c74c5bf1ef6fb8b18926f7d19f83c7d879de9b
diff --git a/nfc/1.0/Android.bp b/nfc/1.0/Android.bp
index 518b8e3..0c70f10 100644
--- a/nfc/1.0/Android.bp
+++ b/nfc/1.0/Android.bp
@@ -62,3 +62,65 @@
"android.hidl.base@1.0",
],
}
+
+genrule {
+ name: "android.hardware.nfc.vts.driver@1.0_genc++",
+ tools: ["hidl-gen", "vtsc"],
+ cmd: "$(location hidl-gen) -o $(genDir) -L vts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.nfc@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/nfc/1.0/ $(genDir)/android/hardware/nfc/1.0/",
+ srcs: [
+ "types.hal",
+ "INfc.hal",
+ "INfcClientCallback.hal",
+ ],
+ out: [
+ "android/hardware/nfc/1.0/types.vts.cpp",
+ "android/hardware/nfc/1.0/Nfc.vts.cpp",
+ "android/hardware/nfc/1.0/NfcClientCallback.vts.cpp",
+ ],
+}
+
+genrule {
+ name: "android.hardware.nfc.vts.driver@1.0_genc++_headers",
+ tools: ["hidl-gen", "vtsc"],
+ cmd: "$(location hidl-gen) -o $(genDir) -L vts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.nfc@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/nfc/1.0/ $(genDir)/android/hardware/nfc/1.0/",
+ srcs: [
+ "types.hal",
+ "INfc.hal",
+ "INfcClientCallback.hal",
+ ],
+ out: [
+ "android/hardware/nfc/1.0/types.vts.h",
+ "android/hardware/nfc/1.0/Nfc.vts.h",
+ "android/hardware/nfc/1.0/NfcClientCallback.vts.h",
+ ],
+}
+
+cc_library_shared {
+ name: "android.hardware.nfc.vts.driver@1.0",
+ generated_sources: ["android.hardware.nfc.vts.driver@1.0_genc++"],
+ generated_headers: ["android.hardware.nfc.vts.driver@1.0_genc++_headers"],
+ export_generated_headers: ["android.hardware.nfc.vts.driver@1.0_genc++_headers"],
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ "libvts_common",
+ "libvts_datatype",
+ "libvts_measurement",
+ "libvts_multidevice_proto",
+ "libcamera_metadata",
+ "libprotobuf-cpp-full",
+ "android.hidl.base@1.0",
+ "android.hardware.nfc@1.0",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ "android.hidl.base@1.0",
+ ],
+}
diff --git a/nfc/1.0/vts/Android.mk b/nfc/1.0/vts/Android.mk
index b008b63..e7dec14 100644
--- a/nfc/1.0/vts/Android.mk
+++ b/nfc/1.0/vts/Android.mk
@@ -5,7 +5,7 @@
# 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
+# 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,
@@ -16,37 +16,6 @@
LOCAL_PATH := $(call my-dir)
-# build VTS driver for Nfc v1.0.
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libvts_driver_hidl_nfc@1.0
-
-LOCAL_SRC_FILES := \
- Nfc.vts \
- NfcClientCallback.vts \
- types.vts \
-
-LOCAL_SHARED_LIBRARIES += \
- android.hardware.nfc@1.0 \
- libbase \
- libutils \
- libcutils \
- liblog \
- libhidlbase \
- libhidltransport \
- libhwbinder \
- libprotobuf-cpp-full \
- libvts_common \
- libvts_datatype \
- libvts_measurement \
- libvts_multidevice_proto \
-
-LOCAL_PROTOC_OPTIMIZE_TYPE := full
-
-LOCAL_MULTILIB := both
-
-include $(BUILD_SHARED_LIBRARY)
-
# build profiler for Nfc.
include $(CLEAR_VARS)