diff --git a/android.sh b/android.sh index 6611b3804..69c272b70 100755 --- a/android.sh +++ b/android.sh @@ -561,12 +561,10 @@ build_application_mk() { local LTS_BUILD_FLAG="-DMOBILE_FFMPEG_LTS " fi - if [[ ${ENABLED_LIBRARIES[$LIBRARY_X265]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_TESSERACT]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_OPENH264]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_SNAPPY]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_RUBBERBAND]} -eq 1 ]]; then + if [[ ${ENABLED_LIBRARIES[$LIBRARY_X265]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_TESSERACT]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_SNAPPY]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_RUBBERBAND]} -eq 1 ]]; then local APP_STL="c++_shared" else local APP_STL="none" - - ${SED_INLINE} 's/c++_shared //g' ${BASEDIR}/android/jni/Android.mk 1>>${BASEDIR}/build.log 2>&1 fi local BUILD_DATE="-DMOBILE_FFMPEG_BUILD_DATE=$(date +%Y%m%d 2>>${BASEDIR}/build.log)" diff --git a/android/jni/Android.mk b/android/jni/Android.mk index b871a0c92..51065437a 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -3,7 +3,7 @@ $(call import-add-path, $(LOCAL_PATH)) MY_ARM_MODE := arm MY_ARM_NEON := false -MY_PATH := ../app/src/main/cpp +LOCAL_PATH := app/src/main/cpp # DEFINE ARCH FLAGS ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) @@ -21,23 +21,13 @@ ifeq ($(TARGET_ARCH_ABI), x86_64) MY_ARCH_FLAGS := X86_64 endif -include $(CLEAR_VARS) -LOCAL_ARM_MODE := $(MY_ARM_MODE) -LOCAL_MODULE := cpufeatures -LOCAL_SRC_FILES := $(NDK_ROOT)/sources/android/cpufeatures/cpu-features.c -LOCAL_CFLAGS := -Wall -Wextra -Werror -LOCAL_EXPORT_C_INCLUDES := $(NDK_ROOT)/sources/android/cpufeatures -LOCAL_EXPORT_LDLIBS := -ldl -LOCAL_ARM_NEON := ${MY_ARM_NEON} -include $(BUILD_SHARED_LIBRARY) - include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := mobileffmpeg_abidetect -LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg_abidetect.c -LOCAL_CFLAGS := -Wall -Wextra -Werror -Wno-unused-parameter -I${LOCAL_PATH}/../../prebuilt/android-$(TARGET_ARCH)/ffmpeg/include -I$(NDK_ROOT)/sources/android/cpufeatures -DMOBILE_FFMPEG_${MY_ARCH_FLAGS} +LOCAL_SRC_FILES := mobileffmpeg_abidetect.c +LOCAL_CFLAGS := -Wall -Wextra -Werror -Wno-unused-parameter -DMOBILE_FFMPEG_${MY_ARCH_FLAGS} LOCAL_LDLIBS := -llog -lz -landroid -LOCAL_SHARED_LIBRARIES := cpufeatures +LOCAL_SHARED_LIBRARIES := cpu_features libavcodec libavutil LOCAL_ARM_NEON := ${MY_ARM_NEON} include $(BUILD_SHARED_LIBRARY) @@ -45,16 +35,21 @@ include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := mobileffmpeg ifeq ($(TARGET_PLATFORM),android-16) - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/android_lts_support.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c android_lts_support.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c else ifeq ($(TARGET_PLATFORM),android-17) - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/android_lts_support.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c android_lts_support.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c else - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c endif -LOCAL_CFLAGS := -Wall -Werror -Wno-unused-parameter -Wno-switch -Wno-sign-compare -I${LOCAL_PATH}/../../prebuilt/android-$(TARGET_ARCH)/ffmpeg/include +LOCAL_CFLAGS := -Wall -Werror -Wno-unused-parameter -Wno-switch -Wno-sign-compare LOCAL_LDLIBS := -llog -lz -landroid -LOCAL_SHARED_LIBRARIES := c++_shared libavfilter libavformat libavcodec libavutil libswresample libavdevice libswscale +LOCAL_SHARED_LIBRARIES := libavfilter libavformat libavcodec libavutil libswresample libavdevice libswscale +ifeq ($(APP_STL),c++_shared) + LOCAL_SHARED_LIBRARIES += c++_shared # otherwise NDK will not add the library for packaging +endif LOCAL_ARM_NEON := ${MY_ARM_NEON} include $(BUILD_SHARED_LIBRARY) $(call import-module, ffmpeg) +$(call import-module, cpu_features) +$(call import-module, cxx-stl/llvm-libc++) \ No newline at end of file diff --git a/android/jni/cpu_features/Android.mk b/android/jni/cpu_features/Android.mk new file mode 100644 index 000000000..5320e994a --- /dev/null +++ b/android/jni/cpu_features/Android.mk @@ -0,0 +1,8 @@ +LOCAL_PATH := $(call my-dir)/../../../prebuilt/android-$(TARGET_ARCH)/cpu_features/lib + +include $(CLEAR_VARS) +LOCAL_ARM_MODE := $(MY_ARM_MODE) +LOCAL_MODULE := cpu_features +LOCAL_SRC_FILES := libndk_compat.so +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../include/ndk_compat +include $(PREBUILT_SHARED_LIBRARY) diff --git a/android/jni/ffmpeg/Android.mk b/android/jni/ffmpeg/Android.mk index 3bb450397..445fa77aa 100644 --- a/android/jni/ffmpeg/Android.mk +++ b/android/jni/ffmpeg/Android.mk @@ -1,46 +1,46 @@ -LOCAL_PATH := $(call my-dir) +LOCAL_PATH := $(call my-dir)/../../../prebuilt/android-$(TARGET_ARCH)/ffmpeg/lib MY_ARM_MODE := arm -MY_FFMPEG_LIB := ../../../prebuilt/android-$(TARGET_ARCH)/ffmpeg/lib include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavcodec -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavcodec.so +LOCAL_SRC_FILES := libavcodec.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavfilter -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavfilter.so +LOCAL_SRC_FILES := libavfilter.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavdevice -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavdevice.so +LOCAL_SRC_FILES := libavdevice.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavformat -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavformat.so +LOCAL_SRC_FILES := libavformat.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavutil -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavutil.so +LOCAL_SRC_FILES := libavutil.so +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libswresample -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libswresample.so +LOCAL_SRC_FILES := libswresample.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libswscale -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libswscale.so +LOCAL_SRC_FILES := libswscale.so include $(PREBUILT_SHARED_LIBRARY) diff --git a/android/jni/ffmpeg/neon/Android.mk b/android/jni/ffmpeg/neon/Android.mk index 42cf62eaa..df4325810 100644 --- a/android/jni/ffmpeg/neon/Android.mk +++ b/android/jni/ffmpeg/neon/Android.mk @@ -1,53 +1,53 @@ -LOCAL_PATH := $(call my-dir) +LOCAL_PATH := $(call my-dir)/../../../../prebuilt/android-$(TARGET_ARCH)/neon/ffmpeg/lib MY_ARM_MODE := arm -MY_FFMPEG_LIB := ../../../../prebuilt/android-$(TARGET_ARCH)/neon/ffmpeg/lib include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavcodec_neon LOCAL_MODULE_FILENAME := $(LOCAL_MODULE) -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavcodec.so +LOCAL_SRC_FILES := libavcodec.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavfilter_neon LOCAL_MODULE_FILENAME := $(LOCAL_MODULE) -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavfilter.so +LOCAL_SRC_FILES := libavfilter.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavdevice_neon LOCAL_MODULE_FILENAME := $(LOCAL_MODULE) -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavdevice.so +LOCAL_SRC_FILES := libavdevice.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavformat_neon LOCAL_MODULE_FILENAME := $(LOCAL_MODULE) -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavformat.so +LOCAL_SRC_FILES := libavformat.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libavutil_neon LOCAL_MODULE_FILENAME := $(LOCAL_MODULE) -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libavutil.so +LOCAL_SRC_FILES := libavutil.so +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libswresample_neon LOCAL_MODULE_FILENAME := $(LOCAL_MODULE) -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libswresample.so +LOCAL_SRC_FILES := libswresample.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := libswscale_neon LOCAL_MODULE_FILENAME := $(LOCAL_MODULE) -LOCAL_SRC_FILES := $(MY_FFMPEG_LIB)/libswscale.so +LOCAL_SRC_FILES := libswscale.so include $(PREBUILT_SHARED_LIBRARY) diff --git a/tools/ndk/Android.lts.mk b/tools/ndk/Android.lts.mk index 693decbef..ec2f8a71b 100644 --- a/tools/ndk/Android.lts.mk +++ b/tools/ndk/Android.lts.mk @@ -3,7 +3,7 @@ $(call import-add-path, $(LOCAL_PATH)) MY_ARM_MODE := arm MY_ARM_NEON := false -MY_PATH := ../app/src/main/cpp +LOCAL_PATH := ../app/src/main/cpp # DEFINE ARCH FLAGS ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) @@ -21,23 +21,13 @@ ifeq ($(TARGET_ARCH_ABI), x86_64) MY_ARCH_FLAGS := X86_64 endif -include $(CLEAR_VARS) -LOCAL_ARM_MODE := $(MY_ARM_MODE) -LOCAL_MODULE := cpufeatures -LOCAL_SRC_FILES := $(NDK_ROOT)/sources/android/cpufeatures/cpu-features.c -LOCAL_CFLAGS := -Wall -Wextra -Werror -LOCAL_EXPORT_C_INCLUDES := $(NDK_ROOT)/sources/android/cpufeatures -LOCAL_EXPORT_LDLIBS := -ldl -LOCAL_ARM_NEON := ${MY_ARM_NEON} -include $(BUILD_SHARED_LIBRARY) - include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := mobileffmpeg_abidetect -LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg_abidetect.c -LOCAL_CFLAGS := -Wall -Wextra -Werror -Wno-unused-parameter -I${LOCAL_PATH}/../../prebuilt/android-$(TARGET_ARCH)/ffmpeg/include -I$(NDK_ROOT)/sources/android/cpufeatures -DMOBILE_FFMPEG_${MY_ARCH_FLAGS} +LOCAL_SRC_FILES := mobileffmpeg_abidetect.c +LOCAL_CFLAGS := -Wall -Wextra -Werror -Wno-unused-parameter -DMOBILE_FFMPEG_${MY_ARCH_FLAGS} LOCAL_LDLIBS := -llog -lz -landroid -LOCAL_SHARED_LIBRARIES := cpufeatures +LOCAL_SHARED_LIBRARIES := cpu_features libavcodec libavutil LOCAL_ARM_NEON := ${MY_ARM_NEON} include $(BUILD_SHARED_LIBRARY) @@ -45,15 +35,18 @@ include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := mobileffmpeg ifeq ($(TARGET_PLATFORM),android-16) - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/android_lts_support.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c android_lts_support.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c else ifeq ($(TARGET_PLATFORM),android-17) - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/android_lts_support.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c android_lts_support.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c else - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c endif -LOCAL_CFLAGS := -Wall -Werror -Wno-unused-parameter -Wno-switch -Wno-sign-compare -I${LOCAL_PATH}/../../prebuilt/android-$(TARGET_ARCH)/ffmpeg/include +LOCAL_CFLAGS := -Wall -Werror -Wno-unused-parameter -Wno-switch -Wno-sign-compare LOCAL_LDLIBS := -llog -lz -landroid -LOCAL_SHARED_LIBRARIES := c++_shared libavfilter libavformat libavcodec libavutil libswresample libavdevice libswscale +LOCAL_SHARED_LIBRARIES := libavfilter libavformat libavcodec libavutil libswresample libavdevice libswscale +ifeq ($(APP_STL),c++_shared) + LOCAL_SHARED_LIBRARIES += c++_shared # otherwise NDK will not add the library for packaging +endif LOCAL_ARM_NEON := ${MY_ARM_NEON} include $(BUILD_SHARED_LIBRARY) @@ -64,15 +57,18 @@ ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := mobileffmpeg_armv7a_neon ifeq ($(TARGET_PLATFORM),android-16) - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/android_lts_support.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c android_lts_support.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c else ifeq ($(TARGET_PLATFORM),android-17) - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/android_lts_support.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c android_lts_support.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c else - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c endif - LOCAL_CFLAGS := -Wall -Werror -Wno-unused-parameter -Wno-switch -Wno-sign-compare -I${LOCAL_PATH}/../../prebuilt/android-$(TARGET_ARCH)/ffmpeg/include + LOCAL_CFLAGS := -Wall -Werror -Wno-unused-parameter -Wno-switch -Wno-sign-compare LOCAL_LDLIBS := -llog -lz -landroid - LOCAL_SHARED_LIBRARIES := c++_shared libavcodec_neon libavfilter_neon libswscale_neon libavformat libavutil libswresample libavdevice + LOCAL_SHARED_LIBRARIES := libavcodec_neon libavfilter_neon libswscale_neon libavformat libavutil libswresample libavdevice + ifeq ($(APP_STL),c++_shared) + LOCAL_SHARED_LIBRARIES += c++_shared # otherwise NDK will not add the library for packaging + endif LOCAL_ARM_NEON := true include $(BUILD_SHARED_LIBRARY) @@ -81,3 +77,5 @@ ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) endif $(call import-module, ffmpeg) +$(call import-module, cpu_features) +$(call import-module, cxx-stl/llvm-libc++) \ No newline at end of file diff --git a/tools/ndk/Android.mk b/tools/ndk/Android.mk index b871a0c92..51065437a 100644 --- a/tools/ndk/Android.mk +++ b/tools/ndk/Android.mk @@ -3,7 +3,7 @@ $(call import-add-path, $(LOCAL_PATH)) MY_ARM_MODE := arm MY_ARM_NEON := false -MY_PATH := ../app/src/main/cpp +LOCAL_PATH := app/src/main/cpp # DEFINE ARCH FLAGS ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) @@ -21,23 +21,13 @@ ifeq ($(TARGET_ARCH_ABI), x86_64) MY_ARCH_FLAGS := X86_64 endif -include $(CLEAR_VARS) -LOCAL_ARM_MODE := $(MY_ARM_MODE) -LOCAL_MODULE := cpufeatures -LOCAL_SRC_FILES := $(NDK_ROOT)/sources/android/cpufeatures/cpu-features.c -LOCAL_CFLAGS := -Wall -Wextra -Werror -LOCAL_EXPORT_C_INCLUDES := $(NDK_ROOT)/sources/android/cpufeatures -LOCAL_EXPORT_LDLIBS := -ldl -LOCAL_ARM_NEON := ${MY_ARM_NEON} -include $(BUILD_SHARED_LIBRARY) - include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := mobileffmpeg_abidetect -LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg_abidetect.c -LOCAL_CFLAGS := -Wall -Wextra -Werror -Wno-unused-parameter -I${LOCAL_PATH}/../../prebuilt/android-$(TARGET_ARCH)/ffmpeg/include -I$(NDK_ROOT)/sources/android/cpufeatures -DMOBILE_FFMPEG_${MY_ARCH_FLAGS} +LOCAL_SRC_FILES := mobileffmpeg_abidetect.c +LOCAL_CFLAGS := -Wall -Wextra -Werror -Wno-unused-parameter -DMOBILE_FFMPEG_${MY_ARCH_FLAGS} LOCAL_LDLIBS := -llog -lz -landroid -LOCAL_SHARED_LIBRARIES := cpufeatures +LOCAL_SHARED_LIBRARIES := cpu_features libavcodec libavutil LOCAL_ARM_NEON := ${MY_ARM_NEON} include $(BUILD_SHARED_LIBRARY) @@ -45,16 +35,21 @@ include $(CLEAR_VARS) LOCAL_ARM_MODE := $(MY_ARM_MODE) LOCAL_MODULE := mobileffmpeg ifeq ($(TARGET_PLATFORM),android-16) - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/android_lts_support.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c android_lts_support.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c else ifeq ($(TARGET_PLATFORM),android-17) - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/android_lts_support.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c android_lts_support.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c else - LOCAL_SRC_FILES := $(MY_PATH)/mobileffmpeg.c $(MY_PATH)/mobileffprobe.c $(MY_PATH)/mobileffmpeg_exception.c $(MY_PATH)/fftools_cmdutils.c $(MY_PATH)/fftools_ffmpeg.c $(MY_PATH)/fftools_ffprobe.c $(MY_PATH)/fftools_ffmpeg_opt.c $(MY_PATH)/fftools_ffmpeg_hw.c $(MY_PATH)/fftools_ffmpeg_filter.c + LOCAL_SRC_FILES := mobileffmpeg.c mobileffprobe.c mobileffmpeg_exception.c fftools_cmdutils.c fftools_ffmpeg.c fftools_ffprobe.c fftools_ffmpeg_opt.c fftools_ffmpeg_hw.c fftools_ffmpeg_filter.c endif -LOCAL_CFLAGS := -Wall -Werror -Wno-unused-parameter -Wno-switch -Wno-sign-compare -I${LOCAL_PATH}/../../prebuilt/android-$(TARGET_ARCH)/ffmpeg/include +LOCAL_CFLAGS := -Wall -Werror -Wno-unused-parameter -Wno-switch -Wno-sign-compare LOCAL_LDLIBS := -llog -lz -landroid -LOCAL_SHARED_LIBRARIES := c++_shared libavfilter libavformat libavcodec libavutil libswresample libavdevice libswscale +LOCAL_SHARED_LIBRARIES := libavfilter libavformat libavcodec libavutil libswresample libavdevice libswscale +ifeq ($(APP_STL),c++_shared) + LOCAL_SHARED_LIBRARIES += c++_shared # otherwise NDK will not add the library for packaging +endif LOCAL_ARM_NEON := ${MY_ARM_NEON} include $(BUILD_SHARED_LIBRARY) $(call import-module, ffmpeg) +$(call import-module, cpu_features) +$(call import-module, cxx-stl/llvm-libc++) \ No newline at end of file