IVGCVSW-2911 Add Android Q support to android-nn-driver infrastructure

 * Updated Android.mk to build Android Q
 * Added androidnn.go to inject cpp flags for Q
 * Create Runtime when ACL is not enabled

Change-Id: Ia3e7a8e484fc81ce63998a65e29753cbf941173c
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Signed-off-by: Kevin May <kevin.may@arm.com>
diff --git a/test/Android.mk b/test/Android.mk
index 87f0b63..820cfd6 100644
--- a/test/Android.mk
+++ b/test/Android.mk
@@ -18,7 +18,12 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := armnn-driver-tests@1.0
+ifeq ($(PLATFORM_VERSION),Q)
+# "eng" is deprecated in Android Q
+LOCAL_MODULE_TAGS := optional
+else
 LOCAL_MODULE_TAGS := eng optional
+endif
 LOCAL_ARM_MODE := arm
 LOCAL_PROPRIETARY_MODULE := true
 # Mark source files as dependent on Android.mk
@@ -36,7 +41,8 @@
         -Werror \
         -O0 \
         -UNDEBUG
-ifeq ($(PLATFORM_VERSION),9)
+
+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.
 LOCAL_CFLAGS+= \
@@ -78,18 +84,32 @@
         libutils \
         android.hardware.neuralnetworks@1.0 \
         android.hidl.allocator@1.0 \
-        android.hidl.memory@1.0 \
-        libOpenCL
-ifeq ($(PLATFORM_VERSION),9)
+        android.hidl.memory@1.0
+
+ifeq ($(P_OR_LATER),1)
 # Required to build the 1.0 version of the NN Driver on Android P and later versions,
 # as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
 LOCAL_SHARED_LIBRARIES+= \
         android.hardware.neuralnetworks@1.1
 endif # PLATFORM_VERSION == 9
 
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libOpenCL
+endif
+
 include $(BUILD_EXECUTABLE)
 
-ifeq ($(PLATFORM_VERSION),9)
+ifeq ($(P_OR_LATER),1)
 # The following target is available starting from Android P
 
 ##########################
@@ -98,7 +118,13 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := armnn-driver-tests@1.1
+ifeq ($(PLATFORM_VERSION),Q)
+# "eng" is deprecated in Android Q
+LOCAL_MODULE_TAGS := optional
+else
 LOCAL_MODULE_TAGS := eng optional
+endif
+#PRODUCT_PACKAGES_ENG := libarmnn
 LOCAL_ARM_MODE := arm
 LOCAL_PROPRIETARY_MODULE := true
 # Mark source files as dependent on Android.mk
@@ -157,8 +183,21 @@
         android.hardware.neuralnetworks@1.0 \
         android.hardware.neuralnetworks@1.1 \
         android.hidl.allocator@1.0 \
-        android.hidl.memory@1.0 \
+        android.hidl.memory@1.0
+
+ifeq ($(Q_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+        libnativewindow \
+        libui \
+        libfmq \
+        libcutils \
+        android.hardware.neuralnetworks@1.2
+endif # PLATFORM_VERSION == Q
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_SHARED_LIBRARIES+= \
         libOpenCL
+endif
 
 include $(BUILD_EXECUTABLE)