From beeeab50e9aa1dba36350b835338f352da6f3877 Mon Sep 17 00:00:00 2001 From: Jaeyun Date: Tue, 9 Jun 2020 13:24:12 +0900 Subject: [PATCH] [Android] return to static build To execute model faster, return to static build. Make all sub-plugins static libs and build one native so file. Signed-off-by: Jaeyun --- api/android/api/src/main/jni/Android-nnstreamer.mk | 22 +++------------ api/android/api/src/main/jni/Android-snpe.mk | 9 ++++--- .../api/src/main/jni/Android-tensorflow-lite.mk | 7 +++-- api/android/api/src/main/jni/Android.mk | 31 ++++++++++++++++------ 4 files changed, 35 insertions(+), 34 deletions(-) diff --git a/api/android/api/src/main/jni/Android-nnstreamer.mk b/api/android/api/src/main/jni/Android-nnstreamer.mk index f51479c..801e393 100644 --- a/api/android/api/src/main/jni/Android-nnstreamer.mk +++ b/api/android/api/src/main/jni/Android-nnstreamer.mk @@ -29,26 +29,12 @@ NNSTREAMER_SRC_FILES += \ $(NNSTREAMER_DECODER_IS_SRCS) endif -# common headers (nnstreamer, gstreamer, glib) -NNSTREAMER_INC := \ - $(NNSTREAMER_INCLUDES) \ - $(NNSTREAMER_CAPI_INCLUDES) \ - $(GST_HEADERS_COMMON) - include $(CLEAR_VARS) LOCAL_MODULE := nnstreamer - LOCAL_SRC_FILES := $(sort $(NNSTREAMER_SRC_FILES)) -LOCAL_C_INCLUDES := $(NNSTREAMER_INC) -LOCAL_CFLAGS := -O2 -fPIC $(NNS_API_FLAGS) -LOCAL_CXXFLAGS := -std=c++11 -O2 -fPIC -frtti -fexceptions $(NNS_API_FLAGS) -LOCAL_SHARED_LIBRARIES := gstreamer_android -LOCAL_LDLIBS := -llog -landroid -lmediandk - -LOCAL_EXPORT_C_INCLUDES := $(NNSTREAMER_INC) -LOCAL_EXPORT_CFLAGS := $(NNS_API_FLAGS) -LOCAL_EXPORT_CXXFLAGS := $(NNS_API_FLAGS) -LOCAL_EXPORT_LDLIBS := -llog -landroid +LOCAL_C_INCLUDES := $(NNS_API_INCLUDES) +LOCAL_CFLAGS := -O3 -fPIC $(NNS_API_FLAGS) +LOCAL_CXXFLAGS := -std=c++11 -O3 -fPIC -frtti -fexceptions $(NNS_API_FLAGS) -include $(BUILD_SHARED_LIBRARY) +include $(BUILD_STATIC_LIBRARY) diff --git a/api/android/api/src/main/jni/Android-snpe.mk b/api/android/api/src/main/jni/Android-snpe.mk index e43f7b7..56a2979 100644 --- a/api/android/api/src/main/jni/Android-snpe.mk +++ b/api/android/api/src/main/jni/Android-snpe.mk @@ -34,8 +34,9 @@ include $(CLEAR_VARS) LOCAL_MODULE := snpe-subplugin LOCAL_SRC_FILES := $(NNSTREAMER_FILTER_SNPE_SRCS) -LOCAL_CXXFLAGS := -std=c++11 -O2 -fPIC -frtti -fexceptions -Wno-exceptions -LOCAL_C_INCLUDES := $(SNPE_INCLUDES) -LOCAL_SHARED_LIBRARIES := $(SNPE_PREBUILT_LIBS) $(NNS_API_LIBS) +LOCAL_CXXFLAGS := -std=c++11 -O3 -fPIC -frtti -fexceptions -Wno-exceptions +LOCAL_C_INCLUDES := $(SNPE_INCLUDES) $(NNSTREAMER_INCLUDES) $(GST_HEADERS_COMMON) +LOCAL_STATIC_LIBRARIES := nnstreamer +LOCAL_SHARED_LIBRARIES := $(SNPE_PREBUILT_LIBS) -include $(BUILD_SHARED_LIBRARY) +include $(BUILD_STATIC_LIBRARY) diff --git a/api/android/api/src/main/jni/Android-tensorflow-lite.mk b/api/android/api/src/main/jni/Android-tensorflow-lite.mk index 1dd105e..27d07b4 100644 --- a/api/android/api/src/main/jni/Android-tensorflow-lite.mk +++ b/api/android/api/src/main/jni/Android-tensorflow-lite.mk @@ -49,9 +49,8 @@ include $(CLEAR_VARS) LOCAL_MODULE := tensorflow-lite-subplugin LOCAL_SRC_FILES := $(NNSTREAMER_FILTER_TFLITE_SRCS) -LOCAL_CXXFLAGS := -std=c++11 -O2 -fPIC -frtti -fexceptions -LOCAL_C_INCLUDES := $(TF_LITE_INCLUDES) +LOCAL_CXXFLAGS := -std=c++11 -O3 -fPIC -frtti -fexceptions +LOCAL_C_INCLUDES := $(TF_LITE_INCLUDES) $(NNSTREAMER_INCLUDES) $(GST_HEADERS_COMMON) LOCAL_STATIC_LIBRARIES := tensorflow-lite-lib cpufeatures -LOCAL_SHARED_LIBRARIES := $(NNS_API_LIBS) -include $(BUILD_SHARED_LIBRARY) +include $(BUILD_STATIC_LIBRARY) diff --git a/api/android/api/src/main/jni/Android.mk b/api/android/api/src/main/jni/Android.mk index cdf4078..7f6d520 100644 --- a/api/android/api/src/main/jni/Android.mk +++ b/api/android/api/src/main/jni/Android.mk @@ -23,6 +23,8 @@ endif #------------------------------------------------------ # API build option #------------------------------------------------------ +include $(NNSTREAMER_ROOT)/jni/nnstreamer.mk + NNSTREAMER_API_OPTION := all # tensorflow-lite (nnstreamer tf-lite subplugin) @@ -43,18 +45,19 @@ ifeq ($(ENABLE_SNAP),true) endif endif -# Common libraries for sub-plugins -NNS_API_LIBS := nnstreamer gstreamer_android -NNS_API_FLAGS := +# Common options +NNS_API_INCLUDES := \ + $(NNSTREAMER_INCLUDES) \ + $(NNSTREAMER_CAPI_INCLUDES) \ + $(GST_HEADERS_COMMON) + +NNS_API_FLAGS := -DVERSION=\"$(NNSTREAMER_VERSION)\" NNS_SUBPLUGINS := ifeq ($(NNSTREAMER_API_OPTION),single) NNS_API_FLAGS += -DNNS_SINGLE_ONLY=1 endif -include $(NNSTREAMER_ROOT)/jni/nnstreamer.mk -NNS_API_FLAGS += -DVERSION=\"$(NNSTREAMER_VERSION)\" - #------------------------------------------------------ # external libs and sub-plugins #------------------------------------------------------ @@ -113,8 +116,16 @@ LOCAL_SRC_FILES += \ nnstreamer-native-pipeline.c endif -LOCAL_CFLAGS := -O2 -fPIC -LOCAL_SHARED_LIBRARIES := $(NNS_API_LIBS) $(NNS_SUBPLUGINS) +LOCAL_C_INCLUDES := $(NNS_API_INCLUDES) +LOCAL_CFLAGS := -O3 -fPIC $(NNS_API_FLAGS) +LOCAL_STATIC_LIBRARIES := nnstreamer $(NNS_SUBPLUGINS) +LOCAL_SHARED_LIBRARIES := gstreamer_android +LOCAL_LDLIBS := -llog -landroid + +ifneq ($(NNSTREAMER_API_OPTION),single) +# For amcsrc element +LOCAL_LDLIBS += -lmediandk +endif include $(BUILD_SHARED_LIBRARY) @@ -128,6 +139,10 @@ GSTREAMER_PLUGINS := $(GST_REQUIRED_PLUGINS) GSTREAMER_EXTRA_DEPS := $(GST_REQUIRED_DEPS) gio-2.0 gmodule-2.0 json-glib-1.0 GSTREAMER_EXTRA_LIBS := $(GST_REQUIRED_LIBS) -liconv +ifeq ($(NNSTREAMER_API_OPTION),all) +GSTREAMER_EXTRA_LIBS += -lcairo +endif + GSTREAMER_INCLUDE_FONTS := no GSTREAMER_INCLUDE_CA_CERTIFICATES := no -- 2.7.4