diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2019-05-22 18:00:30 +0100 |
---|---|---|
committer | Sadik Armagan <sadik.armagan@arm.com> | 2019-05-22 18:00:30 +0100 |
commit | d6539c58519962acd8967e93ceb2da049631c832 (patch) | |
tree | fc1a324e5b2a757d6b9e26a721db362988c93dfe /Android.mk | |
parent | ef08a1179a707f4d93616403c2c6e0d143f71351 (diff) | |
download | android-nn-driver-d6539c58519962acd8967e93ceb2da049631c832.tar.gz |
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>
Diffstat (limited to 'Android.mk')
-rw-r--r-- | Android.mk | 130 |
1 files changed, 119 insertions, 11 deletions
@@ -6,6 +6,25 @@ ANDROID_NN_DRIVER_LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(ANDROID_NN_DRIVER_LOCAL_PATH) +P_OR_LATER := 0 +Q_OR_LATER := 0 + +ifeq ($(PLATFORM_VERSION),9) +P_OR_LATER := 1 +endif # PLATFORM_VERSION == 9 +ifeq ($(PLATFORM_VERSION),P) +P_OR_LATER := 1 +endif # PLATFORM_VERSION == P + +ifeq ($(PLATFORM_VERSION),10) +P_OR_LATER := 1 +Q_OR_LATER := 1 +endif # PLATFORM_VERSION == 10 +ifeq ($(PLATFORM_VERSION),Q) +P_OR_LATER := 1 +Q_OR_LATER := 1 +endif # PLATFORM_VERSION == Q + # Configure these paths if you move the source or Khronos headers ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils @@ -17,13 +36,26 @@ NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include ARMNN_COMPUTE_CL_ENABLED := 1 ARMNN_COMPUTE_NEON_ENABLED := 1 +ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0) +ARMNN_COMPUTE_CL_ENABLED := 0 +endif + +ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0) +ARMNN_COMPUTE_NEON_ENABLED := 0 +endif + ####################### # libarmnn-driver@1.0 # ####################### include $(CLEAR_VARS) LOCAL_MODULE := libarmnn-driver@1.0 +ifeq ($(Q_OR_LATER),1) +# "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 @@ -40,20 +72,24 @@ LOCAL_CFLAGS := \ -fexceptions \ -Werror \ -Wno-format-security -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+= \ -DARMNN_ANDROID_P endif # PLATFORM_VERSION == 9 + 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 @@ -90,18 +126,32 @@ LOCAL_SHARED_LIBRARIES := \ 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_STATIC_LIBRARY) -ifeq ($(PLATFORM_VERSION),9) +ifeq ($(P_OR_LATER),1) # The following target is available starting from Android P ####################### @@ -110,7 +160,13 @@ ifeq ($(PLATFORM_VERSION),9) include $(CLEAR_VARS) LOCAL_MODULE := libarmnn-driver@1.1 +ifeq ($(Q_OR_LATER),1) +# "eng" is deprecated in Android Q +LOCAL_MODULE_TAGS := optional +else LOCAL_MODULE_TAGS := eng optional +endif +#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1 LOCAL_ARM_MODE := arm LOCAL_PROPRIETARY_MODULE := true # Mark source files as dependent on Android.mk @@ -129,14 +185,17 @@ LOCAL_CFLAGS := \ -Wno-format-security \ -DARMNN_ANDROID_P \ -DARMNN_ANDROID_NN_V1_1 + 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 @@ -176,8 +235,21 @@ LOCAL_SHARED_LIBRARIES := \ 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_STATIC_LIBRARY) @@ -190,7 +262,12 @@ include $(CLEAR_VARS) LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc +ifeq ($(Q_OR_LATER),1) +# "eng" is deprecated in Android Q +LOCAL_MODULE_TAGS := optional +else LOCAL_MODULE_TAGS := eng optional +endif LOCAL_ARM_MODE := arm LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_PROPRIETARY_MODULE := true @@ -235,18 +312,31 @@ LOCAL_SHARED_LIBRARIES := \ 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 ##################################################### @@ -256,7 +346,12 @@ include $(CLEAR_VARS) LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc +ifeq ($(Q_OR_LATER),1) +# "eng" is deprecated in Android Q +LOCAL_MODULE_TAGS := optional +else LOCAL_MODULE_TAGS := eng optional +endif LOCAL_ARM_MODE := arm LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_PROPRIETARY_MODULE := true @@ -303,8 +398,21 @@ LOCAL_SHARED_LIBRARIES := \ 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) |