Merge remote-tracking branch 'goog/upstream-master' into master

merges upstream master

Change-Id: I46de8965c287ec2ceea8aeb139b2504f61cf8e7e
diff --git a/Android.mk b/Android.mk
index 739dc8b..6469cb4 100644
--- a/Android.mk
+++ b/Android.mk
@@ -9,6 +9,7 @@
 P_OR_LATER := 0
 Q_OR_LATER := 0
 R_OR_LATER := 0
+ANDROID_R  := 0
 
 ifeq ($(PLATFORM_VERSION),9)
 P_OR_LATER := 1
@@ -36,6 +37,20 @@
 R_OR_LATER := 1
 endif # PLATFORM_VERSION == S
 
+ifeq ($(PLATFORM_VERSION),R)
+P_OR_LATER := 1
+Q_OR_LATER := 1
+R_OR_LATER := 1
+ANDROID_R  := 1
+endif # PLATFORM_VERSION == R
+
+ifeq ($(PLATFORM_VERSION),11)
+P_OR_LATER := 1
+Q_OR_LATER := 1
+R_OR_LATER := 1
+ANDROID_R  := 1
+endif # PLATFORM_VERSION == 11
+
 CPP_VERSION := c++14
 
 ifeq ($(Q_OR_LATER),1)
@@ -44,7 +59,9 @@
 
 # Configure these paths if you move the source or Khronos headers
 ARMNN_HEADER_PATH := $(LOCAL_PATH)/../armnn/include
+ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/../armnn/third-party
 ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/../armnn/src/armnnUtils
+ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/../armnn/third-party
 OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
 NN_HEADER_PATH := $(LOCAL_PATH)/../../frameworks/ml/nn/runtime/include
 
@@ -53,6 +70,7 @@
 ARMNN_COMPUTE_CL_ENABLED := 1
 ARMNN_COMPUTE_NEON_ENABLED := 1
 ARMNN_REF_ENABLED := 1
+ARMNN_ETHOSN_ENABLED := 1
 
 ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
 ARMNN_COMPUTE_CL_ENABLED := 0
@@ -66,6 +84,19 @@
 ARMNN_REF_ENABLED := 0
 endif
 
+ifeq ($(ARMNN_ETHOSN_ENABLE),0)
+ARMNN_ETHOSN_ENABLED := 0
+endif
+
+# Variable to control inclusion of libOpenCL shared library
+ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
+ifeq ($(ARMNN_LIBOPENCL),0)
+ARMNN_INCLUDE_LIBOPENCL := 0
+endif
+
+# Variable to control retire rate of priority queue
+RETIRE_RATE := 3
+
 #######################
 # libarmnn-driver@1.0 #
 #######################
@@ -85,7 +116,9 @@
 
 LOCAL_C_INCLUDES := \
         $(ARMNN_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
         $(ARMNN_UTILS_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
         $(OPENCL_HEADER_PATH) \
         $(NN_HEADER_PATH)
 
@@ -95,23 +128,17 @@
         -Werror \
         -Wno-format-security
 
-ifeq ($(P_OR_LATER),1)
-# Required to build with the changes made to the Android ML framework starting from Android P,
-# regardless of the HAL version used for the build.
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
 LOCAL_CFLAGS+= \
-        -DARMNN_ANDROID_P
-endif # PLATFORM_VERSION == 9
+        -DARMNN_ANDROID_R
+endif
 
 ifeq ($(ARMNN_DRIVER_DEBUG),1)
 LOCAL_CFLAGS+= \
         -UNDEBUG
 endif # ARMNN_DRIVER_DEBUG == 1
 
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
-        -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
-
 ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
 LOCAL_CFLAGS += \
         -DARMCOMPUTECL_ENABLED
@@ -127,6 +154,11 @@
         -DARMNNREF_ENABLED
 endif # ARMNN_REF_ENABLED == 1
 
+ifeq ($(ARMNN_ETHOSN_ENABLED),1)
+LOCAL_CFLAGS += \
+        -DARMNNETHOSN_ENABLED
+endif # ARMNN_ETHOSN_ENABLED == 1
+
 LOCAL_SRC_FILES := \
         1.0/ArmnnDriverImpl.cpp \
         1.0/HalPolicy.cpp \
@@ -141,11 +173,6 @@
 
 LOCAL_STATIC_LIBRARIES := \
         libneuralnetworks_common \
-        libboost_log \
-        libboost_program_options \
-        libboost_system \
-        libboost_thread \
-        libboost_filesystem \
         arm_compute_library
 
 LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
@@ -175,13 +202,15 @@
         libfmq \
         libcutils \
         android.hardware.neuralnetworks@1.2
-endif # PLATFORM_VERSION == Q
+endif # Q or later
 
 ifeq ($(R_OR_LATER),1)
-LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
-endif # PLATFORM_VERSION == R
+LOCAL_SHARED_LIBRARIES+= \
+        libsync \
+        android.hardware.neuralnetworks@1.3
+endif # R or later
 
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
 ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
     LOCAL_SHARED_LIBRARIES += libGLES_mali
 else
@@ -214,7 +243,9 @@
 
 LOCAL_C_INCLUDES := \
         $(ARMNN_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
         $(ARMNN_UTILS_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
         $(OPENCL_HEADER_PATH) \
         $(NN_HEADER_PATH)
 
@@ -223,7 +254,6 @@
         -fexceptions \
         -Werror \
         -Wno-format-security \
-        -DARMNN_ANDROID_P \
         -DARMNN_ANDROID_NN_V1_1
 
 ifeq ($(ARMNN_DRIVER_DEBUG),1)
@@ -231,10 +261,11 @@
         -UNDEBUG
 endif # ARMNN_DRIVER_DEBUG == 1
 
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
-        -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+        -DARMNN_ANDROID_R
+endif
 
 ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
 LOCAL_CFLAGS += \
@@ -251,6 +282,11 @@
         -DARMNNREF_ENABLED
 endif # ARMNN_REF_ENABLED == 1
 
+ifeq ($(ARMNN_ETHOSN_ENABLED),1)
+LOCAL_CFLAGS += \
+        -DARMNNETHOSN_ENABLED
+endif # ARMNN_ETHOSN_ENABLED == 1
+
 LOCAL_SRC_FILES := \
         1.0/ArmnnDriverImpl.cpp \
         1.0/HalPolicy.cpp \
@@ -267,11 +303,6 @@
 
 LOCAL_STATIC_LIBRARIES := \
         libneuralnetworks_common \
-        libboost_log \
-        libboost_program_options \
-        libboost_system \
-        libboost_thread \
-        libboost_filesystem \
         arm_compute_library
 
 LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
@@ -298,10 +329,12 @@
 endif # PLATFORM_VERSION == Q
 
 ifeq ($(R_OR_LATER),1)
-LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
-endif # PLATFORM_VERSION == R
+LOCAL_SHARED_LIBRARIES+= \
+        libsync \
+        android.hardware.neuralnetworks@1.3
+endif # R or later
 
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
 ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
     LOCAL_SHARED_LIBRARIES += libGLES_mali
 else
@@ -330,7 +363,9 @@
 
 LOCAL_C_INCLUDES := \
         $(ARMNN_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
         $(ARMNN_UTILS_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
         $(OPENCL_HEADER_PATH) \
         $(NN_HEADER_PATH)
 
@@ -339,7 +374,6 @@
         -fexceptions \
         -Werror \
         -Wno-format-security \
-        -DARMNN_ANDROID_Q \
         -DARMNN_ANDROID_NN_V1_2
 
 ifeq ($(ARMNN_DRIVER_DEBUG),1)
@@ -347,10 +381,11 @@
         -UNDEBUG
 endif # ARMNN_DRIVER_DEBUG == 1
 
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
-        -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+        -DARMNN_ANDROID_R
+endif
 
 ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
 LOCAL_CFLAGS += \
@@ -367,6 +402,11 @@
         -DARMNNREF_ENABLED
 endif # ARMNN_REF_ENABLED == 1
 
+ifeq ($(ARMNN_ETHOSN_ENABLED),1)
+LOCAL_CFLAGS += \
+        -DARMNNETHOSN_ENABLED
+endif # ARMNN_ETHOSN_ENABLED == 1
+
 LOCAL_SRC_FILES := \
         1.0/ArmnnDriverImpl.cpp \
         1.0/HalPolicy.cpp \
@@ -386,11 +426,6 @@
 
 LOCAL_STATIC_LIBRARIES := \
         libneuralnetworks_common \
-        libboost_log \
-        libboost_program_options \
-        libboost_system \
-        libboost_thread \
-        libboost_filesystem \
         arm_compute_library
 
 LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
@@ -413,10 +448,12 @@
         android.hardware.neuralnetworks@1.2
 
 ifeq ($(R_OR_LATER),1)
-LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
-endif # PLATFORM_VERSION == R
+LOCAL_SHARED_LIBRARIES+= \
+        libsync \
+        android.hardware.neuralnetworks@1.3
+endif # R or later
 
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
 ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
     LOCAL_SHARED_LIBRARIES += libGLES_mali
 else
@@ -428,6 +465,120 @@
 
 endif # PLATFORM_VERSION == Q
 
+ifeq ($(R_OR_LATER),1)
+# The following target is available starting from Android R
+
+#######################
+# libarmnn-driver@1.3 #
+#######################
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libarmnn-driver@1.3
+LOCAL_MODULE_TAGS := optional
+LOCAL_ARM_MODE := arm
+LOCAL_PROPRIETARY_MODULE := true
+# Mark source files as dependent on Android.mk
+LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
+
+LOCAL_C_INCLUDES := \
+        $(ARMNN_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
+        $(ARMNN_UTILS_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
+        $(OPENCL_HEADER_PATH) \
+        $(NN_HEADER_PATH)
+
+LOCAL_CFLAGS := \
+        -std=$(CPP_VERSION) \
+        -fexceptions \
+        -Werror \
+        -Wno-format-security \
+        -DARMNN_ANDROID_NN_V1_3 \
+        -DARMNN_ANDROID_R
+
+ifeq ($(ARMNN_DRIVER_DEBUG),1)
+LOCAL_CFLAGS+= \
+        -UNDEBUG
+endif # ARMNN_DRIVER_DEBUG == 1
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_CFLAGS += \
+        -DARMCOMPUTECL_ENABLED
+endif # ARMNN_COMPUTE_CL_ENABLED == 1
+
+ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
+LOCAL_CFLAGS += \
+        -DARMCOMPUTENEON_ENABLED
+endif # ARMNN_COMPUTE_NEON_ENABLED == 1
+
+ifeq ($(ARMNN_REF_ENABLED),1)
+LOCAL_CFLAGS += \
+        -DARMNNREF_ENABLED
+endif # ARMNN_REF_ENABLED == 1
+
+ifeq ($(ARMNN_ETHOSN_ENABLED),1)
+LOCAL_CFLAGS += \
+        -DARMNNETHOSN_ENABLED
+endif # ARMNN_ETHOSN_ENABLED == 1
+
+LOCAL_CFLAGS += \
+        -DRETIRE_RATE=$(RETIRE_RATE)
+
+LOCAL_SRC_FILES := \
+        1.0/ArmnnDriverImpl.cpp \
+        1.0/HalPolicy.cpp \
+        1.1/ArmnnDriverImpl.cpp \
+        1.1/HalPolicy.cpp \
+        1.2/ArmnnDriverImpl.cpp \
+        1.2/HalPolicy.cpp \
+        1.3/ArmnnDriverImpl.cpp \
+        1.3/HalPolicy.cpp \
+        ArmnnDevice.cpp \
+        ArmnnDriverImpl.cpp \
+        ArmnnPreparedModel.cpp \
+        ArmnnPreparedModel_1_2.cpp \
+        ArmnnPreparedModel_1_3.cpp \
+        ConversionUtils.cpp \
+        DriverOptions.cpp \
+        ModelToINetworkConverter.cpp \
+        RequestThread.cpp \
+        RequestThread_1_3.cpp \
+        Utils.cpp
+
+LOCAL_STATIC_LIBRARIES := \
+        libneuralnetworks_common \
+        arm_compute_library
+
+LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
+
+LOCAL_SHARED_LIBRARIES := \
+        libbase \
+        libhidlbase \
+        libhidltransport \
+        libhidlmemory \
+        liblog \
+        libutils \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        android.hidl.allocator@1.0 \
+        android.hidl.memory@1.0 \
+        libsync \
+        android.hardware.neuralnetworks@1.0 \
+        android.hardware.neuralnetworks@1.1 \
+        android.hardware.neuralnetworks@1.2 \
+        android.hardware.neuralnetworks@1.3
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libOpenCL
+endif
+
+include $(BUILD_STATIC_LIBRARY)
+
+endif # PLATFORM_VERSION == R
+
 #####################################################
 # android.hardware.neuralnetworks@1.0-service-armnn #
 #####################################################
@@ -449,6 +600,7 @@
 
 LOCAL_C_INCLUDES := \
         $(ARMNN_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
         $(NN_HEADER_PATH)
 
 LOCAL_CFLAGS := \
@@ -460,21 +612,17 @@
         -UNDEBUG
 endif # ARMNN_DRIVER_DEBUG == 1
 
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
-        -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+        -DARMNN_ANDROID_R
+endif
 
 LOCAL_SRC_FILES := \
         service.cpp
 
 LOCAL_STATIC_LIBRARIES := \
         libneuralnetworks_common \
-        libboost_log \
-        libboost_program_options \
-        libboost_system \
-        libboost_thread \
-        libboost_filesystem \
         arm_compute_library
 
 LOCAL_WHOLE_STATIC_LIBRARIES := \
@@ -500,6 +648,7 @@
 LOCAL_SHARED_LIBRARIES+= \
         android.hardware.neuralnetworks@1.1
 endif # PLATFORM_VERSION == 9
+
 ifeq ($(Q_OR_LATER),1)
 LOCAL_SHARED_LIBRARIES+= \
         libnativewindow \
@@ -512,7 +661,13 @@
 LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
 endif # PLATFORM_VERSION == R
 
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(R_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libsync \
+        android.hardware.neuralnetworks@1.3
+endif # R or later
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
 ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
     LOCAL_SHARED_LIBRARIES += libGLES_mali
 else
@@ -546,6 +701,7 @@
 
 LOCAL_C_INCLUDES := \
         $(ARMNN_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
         $(NN_HEADER_PATH)
 
 LOCAL_CFLAGS := \
@@ -558,21 +714,17 @@
         -UNDEBUG
 endif # ARMNN_DRIVER_DEBUG == 1
 
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
-        -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+        -DARMNN_ANDROID_R
+endif
 
 LOCAL_SRC_FILES := \
         service.cpp
 
 LOCAL_STATIC_LIBRARIES := \
         libneuralnetworks_common \
-        libboost_log \
-        libboost_program_options \
-        libboost_system \
-        libboost_thread \
-        libboost_filesystem \
         arm_compute_library
 
 LOCAL_WHOLE_STATIC_LIBRARIES := \
@@ -602,7 +754,13 @@
         android.hardware.neuralnetworks@1.2
 endif # PLATFORM_VERSION == Q
 
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(R_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libsync \
+        android.hardware.neuralnetworks@1.3
+endif # PLATFORM_VERSION == R
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
 ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
     LOCAL_SHARED_LIBRARIES += libGLES_mali
 else
@@ -637,13 +795,13 @@
 
 LOCAL_C_INCLUDES := \
         $(ARMNN_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
         $(NN_HEADER_PATH)
 
 LOCAL_CFLAGS := \
         -std=$(CPP_VERSION) \
         -fexceptions \
         -DARMNN_ANDROID_NN_V1_2 \
-        -DBOOST_NO_AUTO_PTR \
         -Wno-unused-variable \
         -Wno-unneeded-internal-declaration \
         -Wno-unused-function \
@@ -654,16 +812,17 @@
         -UNDEBUG
 endif # ARMNN_DRIVER_DEBUG == 1
 
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+        -DARMNN_ANDROID_R
+endif
+
 LOCAL_SRC_FILES := \
         service.cpp
 
 LOCAL_STATIC_LIBRARIES := \
         libneuralnetworks_common \
-        libboost_log \
-        libboost_program_options \
-        libboost_system \
-        libboost_thread \
-        libboost_filesystem \
         arm_compute_library
 
 LOCAL_WHOLE_STATIC_LIBRARIES := \
@@ -690,7 +849,13 @@
         android.hardware.neuralnetworks@1.2 \
         android.hardware.neuralnetworks@1.3
 
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(R_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libsync \
+        android.hardware.neuralnetworks@1.3
+endif # R or later
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
 ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
     LOCAL_SHARED_LIBRARIES += libGLES_mali
 else
@@ -704,6 +869,80 @@
 
 endif # PLATFORM_VERSION == Q
 
+ifeq ($(R_OR_LATER),1)
+# The following target is available starting from Android R
+
+#####################################################
+# android.hardware.neuralnetworks@1.3-service-armnn #
+#####################################################
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
+LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
+LOCAL_MODULE_TAGS := optional
+LOCAL_ARM_MODE := arm
+LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
+# Mark source files as dependent on Android.mk
+LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
+
+LOCAL_C_INCLUDES := \
+        $(ARMNN_HEADER_PATH) \
+        $(ARMNN_THIRD_PARTY_PATH) \
+        $(NN_HEADER_PATH)
+
+LOCAL_CFLAGS := \
+        -std=$(CPP_VERSION) \
+        -fexceptions \
+        -DARMNN_ANDROID_NN_V1_3 \
+        -DARMNN_ANDROID_R
+
+ifeq ($(ARMNN_DRIVER_DEBUG),1)
+LOCAL_CFLAGS += \
+        -UNDEBUG
+endif # ARMNN_DRIVER_DEBUG == 1
+
+LOCAL_SRC_FILES := \
+        service.cpp
+
+LOCAL_STATIC_LIBRARIES := \
+        libneuralnetworks_common \
+        arm_compute_library
+
+LOCAL_WHOLE_STATIC_LIBRARIES := \
+        libarmnn-driver@1.3
+
+LOCAL_SHARED_LIBRARIES := \
+        libbase \
+        libhidlbase \
+        libhidltransport \
+        libhidlmemory \
+        libdl \
+        libhardware \
+        liblog \
+        libtextclassifier_hash \
+        libutils \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        libsync \
+        android.hidl.allocator@1.0 \
+        android.hidl.memory@1.0 \
+        android.hardware.neuralnetworks@1.0 \
+        android.hardware.neuralnetworks@1.1 \
+        android.hardware.neuralnetworks@1.2 \
+        android.hardware.neuralnetworks@1.3
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libOpenCL
+endif
+
+include $(BUILD_EXECUTABLE)
+
+endif # PLATFORM_VERSION == R
+
 ##########################
 # armnn module and tests #
 ##########################