Browse Source

rework libraries building scripts, output paths, remove rename usage

Signed-off-by: r4sas <r4sas@i2pmail.org>
pull/44/head
R4SAS 2 years ago
parent
commit
b0204a59ea
Signed by: r4sas
GPG Key ID: 66F6C87B98EBCFE2
  1. 10
      .github/workflows/android.yml
  2. 4
      README.md
  3. 28
      app/jni/Android.mk
  4. 81
      app/jni/build_boost.sh
  5. 42
      app/jni/build_miniupnpc.sh
  6. 51
      app/jni/build_openssl.sh
  7. 28
      binary/jni/Android.mk

10
.github/workflows/android.yml

@ -9,10 +9,10 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:
submodules: 'recursive' submodules: 'recursive'
- name: Install rename tool - name: Install GNU C++ compiler
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y g++ rename sudo apt-get install -y g++
- name: Setup JDK 1.11 - name: Setup JDK 1.11
uses: actions/setup-java@v1 uses: actions/setup-java@v1
with: with:
@ -31,7 +31,6 @@ jobs:
export ANDROID_SDK_ROOT=$ANDROID_HOME export ANDROID_SDK_ROOT=$ANDROID_HOME
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529 export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529
pushd app/jni pushd app/jni
sed -i -e 's/d+2/d+0/' boost/build-android.sh
./build_boost.sh ./build_boost.sh
./build_openssl.sh ./build_openssl.sh
./build_miniupnpc.sh ./build_miniupnpc.sh
@ -50,10 +49,10 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:
submodules: 'recursive' submodules: 'recursive'
- name: Install rename tool - name: Install GNU C++ compiler
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y g++ rename sudo apt-get install -y g++
- name: Setup JDK 1.11 - name: Setup JDK 1.11
uses: actions/setup-java@v1 uses: actions/setup-java@v1
with: with:
@ -70,7 +69,6 @@ jobs:
export ANDROID_SDK_ROOT=$ANDROID_HOME export ANDROID_SDK_ROOT=$ANDROID_HOME
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529 export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529
pushd binary/jni pushd binary/jni
sed -i -e 's/d+2/d+0/' boost/build-android.sh
./build_boost.sh ./build_boost.sh
./build_openssl.sh ./build_openssl.sh
./build_miniupnpc.sh ./build_miniupnpc.sh

4
README.md

@ -12,9 +12,9 @@ This repository contains Android application sources of i2pd
## How to build ## How to build
### Install OpenJDK 11+, g++, rename (used for building modules), gradle 5.1+ ### Install g++, OpenJDK 11+, gradle 5.1+
```bash ```bash
sudo apt-get install g++ rename openjdk-11-jdk gradle sudo apt-get install g++ openjdk-11-jdk gradle
``` ```
If your system provides gradle with version < 5.1, download it from gradle homepage: If your system provides gradle with version < 5.1, download it from gradle homepage:

28
app/jni/Android.mk

@ -31,49 +31,49 @@ include $(BUILD_SHARED_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := boost_system LOCAL_MODULE := boost_system
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_system.a LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/lib/libboost_system.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := boost_date_time LOCAL_MODULE := boost_date_time
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_date_time.a LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/lib/libboost_date_time.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := boost_filesystem LOCAL_MODULE := boost_filesystem
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_filesystem.a LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/lib/libboost_filesystem.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := boost_program_options LOCAL_MODULE := boost_program_options
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_program_options.a LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/lib/libboost_program_options.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := crypto LOCAL_MODULE := crypto
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libcrypto.a LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/lib/libcrypto.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := ssl LOCAL_MODULE := ssl
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libssl.a LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/lib/libssl.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/include
LOCAL_STATIC_LIBRARIES := crypto LOCAL_STATIC_LIBRARIES := crypto
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := miniupnpc LOCAL_MODULE := miniupnpc
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/libminiupnpc.a LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/lib/libminiupnpc.a
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/include LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)

81
app/jni/build_boost.sh

@ -3,69 +3,22 @@
set -e set -e
BOOST_VERSION=1.74.0 BOOST_VERSION=1.74.0
BOOST_VERSION_SUFFIX=1_74
BOOST_LIBS=date_time,filesystem,program_options,system BOOST_LIBS=date_time,filesystem,program_options,system
REMOVE_BOOST_LIBS_SUFFIX_x86_64=-clang-mt-x64-${BOOST_VERSION_SUFFIX}
REMOVE_BOOST_LIBS_SUFFIX_ARM64=-clang-mt-a64-${BOOST_VERSION_SUFFIX}
REMOVE_BOOST_LIBS_SUFFIX_x86=-clang-mt-x32-${BOOST_VERSION_SUFFIX}
REMOVE_BOOST_LIBS_SUFFIX_ARM=-clang-mt-a32-${BOOST_VERSION_SUFFIX}
function build_one { function build_one {
mkdir out
echo "Configuring and building..." echo "Configuring and building..."
CXXFLAGS="-std=c++14" \ CXXFLAGS="-std=c++14" \
NCPU=$(nproc) \ NCPU=$(nproc) \
./build-android.sh \ ./build-android.sh \
--boost=${BOOST_VERSION} \ --boost=$BOOST_VERSION \
--arch=${CPU} \ --arch=$CPU \
--target-version=${API} \ --target-version=$API \
--with-libraries=${BOOST_LIBS} \ --with-libraries=$BOOST_LIBS \
${ANDROID_NDK_HOME} --layout=system \
--prefix=out \
case "${CPU}" in $ANDROID_NDK_HOME
x86_64)
mkdir -p out/{x86_64,include}
cp build/out/x86_64/lib/*.a out/${CPU}
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86_64}'//' out/x86_64/*.a
cp -r build/out/x86_64/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
arm64-v8a)
mkdir -p out/{arm64-v8a,include}
cp build/out/arm64-v8a/lib/*.a out/${CPU}
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM64}'//' out/arm64-v8a/*.a
cp -r build/out/arm64-v8a/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
x86)
mkdir -p out/{x86,include}
cp build/out/x86/lib/*.a out/${CPU}
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86}'//' out/x86/*.a
cp -r build/out/x86/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
armeabi-v7a)
mkdir -p out/{armeabi-v7a,include}
cp build/out/armeabi-v7a/lib/*.a out/${CPU}
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM}'//' out/armeabi-v7a/*.a
cp -r build/out/armeabi-v7a/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
*)
mkdir -p out/{x86_64,arm64-v8a,x86,armeabi-v7a,include}
cp build/out/x86_64/lib/*.a out/x86_64
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86_64}'//' out/x86_64/*.a
cp build/out/arm64-v8a/lib/*.a out/arm64-v8a
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM64}'//' out/arm64-v8a/*.a
cp build/out/x86/lib/*.a out/x86
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86}'//' out/x86/*.a
cp build/out/armeabi-v7a/lib/*.a out/armeabi-v7a
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM}'//' out/armeabi-v7a/*.a
cp -r build/out/arm64-v8a/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
esac
} }
function checkPreRequisites { function checkPreRequisites {
@ -82,14 +35,9 @@ function checkPreRequisites {
fi fi
} }
checkPreRequisites
cd boost
rm -rf out
function build { function build {
for arg in "$@"; do for arg in "$@"; do
case "${arg}" in case "$arg" in
x86_64) x86_64)
API=21 API=21
TARGET=x86_64 TARGET=x86_64
@ -112,7 +60,6 @@ function build {
;; ;;
all) all)
API=16 API=16
CPU=x86_64,arm64-v8a,x86,armeabi-v7a
build_one build_one
;; ;;
*) *)
@ -121,6 +68,14 @@ function build {
done done
} }
checkPreRequisites
cd boost
rm -rf out
# disable verbose output
sed -i -e 's/d+2/d+0/' build-android.sh
if (( $# == 0 )); then if (( $# == 0 )); then
build all build all
else else

42
app/jni/build_miniupnpc.sh

@ -5,29 +5,27 @@ set -e
CMAKE_VERSION=3.18.1 CMAKE_VERSION=3.18.1
function build_one { function build_one {
mkdir -p out/${CPU} mkdir -p build out/$CPU
cd out/${CPU} cd build
cmake \ cmake \
-DUPNPC_BUILD_SHARED=False \ -DUPNPC_BUILD_SHARED=False \
-DUPNPC_BUILD_TESTS=False \ -DUPNPC_BUILD_TESTS=False \
-DUPNPC_BUILD_SAMPLE=False \ -DUPNPC_BUILD_SAMPLE=False \
-DANDROID_NATIVE_API_LEVEL=${API} \ -DANDROID_NATIVE_API_LEVEL=$API \
-DANDROID_ABI=${CPU} \ -DANDROID_ABI=$CPU \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DANDROID_NDK=${ANDROID_NDK_HOME} \ -DANDROID_NDK=$ANDROID_NDK_HOME \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \ -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
../.. -DCMAKE_INSTALL_PREFIX=../out/$CPU \
..
echo "Building..." echo "Building..."
cmake --build . -- libminiupnpc-static cmake --build . -- libminiupnpc-static
make install
cd ../.. cd ..
rm -rf build
if [[ -n 'out/include' ]]; then
mkdir -p out/include/miniupnpc
cp include/* out/include/miniupnpc
fi
} }
function checkPreRequisites { function checkPreRequisites {
@ -49,17 +47,9 @@ function checkPreRequisites {
fi fi
} }
checkPreRequisites
cd miniupnp/miniupnpc
rm -rf out
# add cmake from Android SDK to PATH
PATH=$ANDROID_SDK_ROOT/cmake/${CMAKE_VERSION}/bin:$PATH
function build { function build {
for arg in "$@"; do for arg in "$@"; do
case "${arg}" in case "$arg" in
x86_64) x86_64)
API=21 API=21
CPU=x86_64 CPU=x86_64
@ -86,6 +76,14 @@ function build {
done done
} }
checkPreRequisites
cd miniupnp/miniupnpc
rm -rf build out
# add cmake from Android SDK to PATH
PATH=$ANDROID_SDK_ROOT/cmake/$CMAKE_VERSION/bin:$PATH
if (( $# == 0 )); then if (( $# == 0 )); then
build x86_64 arm64 arm x86 build x86_64 arm64 arm x86
else else

51
app/jni/build_openssl.sh

@ -3,32 +3,22 @@
set -e set -e
function build_one { function build_one {
mkdir -p out/${CPU} mkdir -p out/$CPU
mkdir output
echo "Configuring OpenSSL for ${CPU}..." echo "Configuring OpenSSL for $CPU..."
./Configure \ ./Configure \
--prefix="$PWD/output" \ --prefix="$PWD/out/$CPU" \
${TARGET} \ $TARGET \
no-shared \ no-shared \
no-tests \ no-tests \
-D__ANDROID_API__=${API} \ -D__ANDROID_API__=$API \
-Wno-macro-redefined -Wno-macro-redefined
echo "Building OpenSSL for ${CPU}..." echo "Building OpenSSL for $CPU..."
make -j $(nproc) > output/build.log make -j $(nproc) > out/build.log
echo "Installing to temporary directory..." make install_sw >> out/build.log
make install_sw >> output/build.log
cp output/lib/*.a out/${CPU}
if [[ -n 'out/include' ]]; then
mkdir -p out/include
cp -r output/include/openssl out/include
fi
rm -rf output
make clean make clean
} }
@ -46,21 +36,9 @@ function checkPreRequisites {
fi fi
} }
checkPreRequisites
cd openssl
rm -rf out output
if [[ -f 'Makefile' ]]; then
make clean
fi
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
function build { function build {
for arg in "$@"; do for arg in "$@"; do
case "${arg}" in case "$arg" in
x86_64) x86_64)
API=21 API=21
CPU=x86_64 CPU=x86_64
@ -91,6 +69,17 @@ function build {
done done
} }
checkPreRequisites
cd openssl
rm -rf out
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
if [[ -f 'Makefile' ]]; then
make clean
fi
if (( $# == 0 )); then if (( $# == 0 )); then
build x86_64 arm64 arm x86 build x86_64 arm64 arm x86
else else

28
binary/jni/Android.mk

@ -31,49 +31,49 @@ include $(BUILD_EXECUTABLE)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := boost_system LOCAL_MODULE := boost_system
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_system.a LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/lib/libboost_system.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := boost_date_time LOCAL_MODULE := boost_date_time
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_date_time.a LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/lib/libboost_date_time.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := boost_filesystem LOCAL_MODULE := boost_filesystem
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_filesystem.a LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/lib/libboost_filesystem.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := boost_program_options LOCAL_MODULE := boost_program_options
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_program_options.a LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/lib/libboost_program_options.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := crypto LOCAL_MODULE := crypto
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libcrypto.a LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/lib/libcrypto.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := ssl LOCAL_MODULE := ssl
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libssl.a LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/lib/libssl.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/include
LOCAL_STATIC_LIBRARIES := crypto LOCAL_STATIC_LIBRARIES := crypto
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := miniupnpc LOCAL_MODULE := miniupnpc
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/libminiupnpc.a LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/lib/libminiupnpc.a
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/include LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY) include $(PREBUILT_STATIC_LIBRARY)

Loading…
Cancel
Save