Как собрать libvpx для Android, а также для x86?

Я создавал наше Android-приложение для armeabi-v7a. Теперь, чтобы добавить поддержку x86, я расширил Application.mk:

APP_ABI := armeabi-v7a x86

Первая проблема, с которой я сталкиваюсь, заключается в том, что libvpx можно настроить как для arm, так и для x86:

$ ./libvpx/configure --target=armv7-android-gcc ...
OR
$ ./libvpx/configure --target=x86-android-gcc

Интересно, как работать с несколькими платформами. Можно ли создать два разных каталога libvpx для двух платформ и использовать логику if-then-else в Android.mk для выбора правильного каталога? Есть ли способ лучше?


person Peter    schedule 17.11.2014    source источник


Ответы (1)


Да, в значительной степени. Если вы храните продукт сборки (созданный make install) в параллельных каталогах, названных в соответствии с ABI Android, вы можете упростить его использование из файла Android.mk следующим образом:

include $(CLEAR_VARS)
LOCAL_MODULE    := libvpx
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/libvpx/$(TARGET_ARCH_ABI)/include
LOCAL_SRC_FILES := libvpx/$(TARGET_ARCH_ABI)/lib/libvpx.a
include $(PREBUILT_STATIC_LIBRARY)

Поскольку общедоступные заголовки, вероятно, не содержат (должны быть) ничего специфичного для арки, вы также должны иметь возможность поделиться одной их копией вместо того, чтобы иметь одну копию для каждой арки.

person mstorsjo    schedule 17.11.2014