mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 17:16:50 +08:00
[build]: Add path detection for different ndk
Support r10d and r16b first. Change-Id: I289813c26b79ad4a1b038fc07f8375832fe78162 Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -166,6 +166,8 @@ if(GCC)
|
||||
add_definitions(-Wno-multichar)
|
||||
# add PIC flag
|
||||
add_definitions(-fPIC)
|
||||
# disable exception for C++
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti")
|
||||
endif(GCC)
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
|
@@ -1,39 +1,93 @@
|
||||
#!/bin/bash
|
||||
# Run this from within a bash shell
|
||||
HOST_IP=`hostname --all-ip-addresses`
|
||||
if [ ${HOST_IP} == "10.10.10.65" ] || [ ${HOST_IP} == "10.10.10.67" ]; then
|
||||
ANDROID_NDK=/home/pub/ndk/android-ndk-r10d/
|
||||
else
|
||||
ANDROID_NDK=~/work/android/ndk/android-ndk-r10d/
|
||||
fi
|
||||
|
||||
PLATFORM=$ANDROID_NDK/platforms/android-21/arch-arm64
|
||||
MAKE_PROGRAM=`which make`
|
||||
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake \
|
||||
ANDROID_NDK="No ndk path found. You should add your ndk path"
|
||||
TOOLCHAIN_FILE="no toolchain file found, Please fix ndk path"
|
||||
|
||||
FOUND_NDK=
|
||||
|
||||
# Search r10d ndk
|
||||
# NOTE: r10d ndk do not have toolchain file
|
||||
if [ ! ${FOUND_NDK} ]; then
|
||||
NDK_R10D_PATHS=(
|
||||
/home/pub/ndk/android-ndk-r10d/
|
||||
~/work/android/ndk/android-ndk-r10d/
|
||||
)
|
||||
|
||||
for NDK_PATH in ${NDK_R10D_PATHS[@]};
|
||||
do
|
||||
if [ -d ${NDK_PATH} ]; then
|
||||
echo "found r10d ndk ${NDK_PATH}"
|
||||
FOUND_NDK=true
|
||||
|
||||
ANDROID_NDK=${NDK_PATH}
|
||||
TOOLCHAIN_FILE=../android.toolchain.cmake
|
||||
NATIVE_API_LEVEL="android-21"
|
||||
TOOLCHAIN_NAME="aarch64-linux-android-4.9"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Search r16b ndk
|
||||
# NOTE: r16b use ndk toolchain file
|
||||
if [ ! ${FOUND_NDK} ]; then
|
||||
NDK_R16B_PATHS=(
|
||||
/home/pub/ndk/android-ndk-r16b/
|
||||
~/work/android/ndk/android-ndk-r16b/
|
||||
)
|
||||
|
||||
for NDK_PATH in ${NDK_R16B_PATHS[@]};
|
||||
do
|
||||
if [ -d ${NDK_PATH} ]; then
|
||||
echo "found r16 ndk ${NDK_PATH}"
|
||||
FOUND_NDK=true
|
||||
|
||||
ANDROID_NDK=${NDK_PATH}
|
||||
TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
NATIVE_API_LEVEL="android-27"
|
||||
TOOLCHAIN_NAME="aarch64-linux-android-4.9"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ ! ${FOUND_NDK} ]; then
|
||||
echo ${ANDROID_NDK}
|
||||
echo ${TOOLCHAIN_FILE}
|
||||
exit
|
||||
fi
|
||||
|
||||
PLATFORM=$ANDROID_NDK/platforms/${NATIVE_API_LEVEL}/arch-arm64
|
||||
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_MAKE_PROGRAM=${MAKE_PROGRAM} \
|
||||
-DANDROID_FORCE_ARM_BUILD=ON \
|
||||
-DANDROID_NDK=${ANDROID_NDK} \
|
||||
-DANDROID_SYSROOT=${PLATFORM} \
|
||||
-DANDROID_ABI="arm64-v8a" \
|
||||
-DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-4.9" \
|
||||
-DANDROID_NATIVE_API_LEVEL=android-21 \
|
||||
-DANDROID_TOOLCHAIN_NAME=${TOOLCHAIN_NAME} \
|
||||
-DANDROID_NATIVE_API_LEVEL=${NATIVE_API_LEVEL} \
|
||||
-DANDROID_STL=system \
|
||||
-DRKPLATFORM=ON \
|
||||
-DMPP_PROJECT_NAME=mpp \
|
||||
-DVPU_PROJECT_NAME=vpu \
|
||||
-DHAVE_DRM=ON \
|
||||
../../../
|
||||
|
||||
cmake --build .
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# usefull cmake debug flag
|
||||
# ----------------------------------------------------------------------------
|
||||
#-DMPP_NAME="rockchip_mpp" \
|
||||
#-DVPU_NAME="rockchip_vpu" \
|
||||
#-DHAVE_DRM \
|
||||
#-DCMAKE_BUILD_TYPE=Debug \
|
||||
#-DCMAKE_VERBOSE_MAKEFILE=true \
|
||||
#--trace \
|
||||
#--debug-output \
|
||||
|
||||
#cmake --build . --clean-first -- V=1
|
||||
cmake --build .
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# test script
|
||||
@@ -45,5 +99,3 @@ cmake --build .
|
||||
#adb shell rk_log_test
|
||||
#adb shell rk_thread_test
|
||||
#adb logcat -d|tail -30
|
||||
|
||||
|
||||
|
@@ -1,29 +1,81 @@
|
||||
#!/bin/bash
|
||||
# Run this from within a bash shell
|
||||
HOST_IP=`hostname --all-ip-addresses`
|
||||
if [ ${HOST_IP} == "10.10.10.65" ] || [ ${HOST_IP} == "10.10.10.67" ]; then
|
||||
ANDROID_NDK=/home/pub/ndk/android-ndk-r10d/
|
||||
else
|
||||
ANDROID_NDK=~/work/android/ndk/android-ndk-r10d/
|
||||
fi
|
||||
|
||||
PLATFORM=$ANDROID_NDK/platforms/android-21/arch-arm
|
||||
MAKE_PROGRAM=`which make`
|
||||
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake \
|
||||
ANDROID_NDK="No ndk path found. You should add your ndk path"
|
||||
TOOLCHAIN_FILE="no toolchain file found, Please fix ndk path"
|
||||
|
||||
FOUND_NDK=
|
||||
|
||||
# Search r10d ndk
|
||||
# NOTE: r10d ndk do not have toolchain file
|
||||
if [ ! ${FOUND_NDK} ]; then
|
||||
NDK_R10D_PATHS=(
|
||||
/home/pub/ndk/android-ndk-r10d/
|
||||
~/work/android/ndk/android-ndk-r10d/
|
||||
)
|
||||
|
||||
for NDK_PATH in ${NDK_R10D_PATHS[@]};
|
||||
do
|
||||
if [ -d ${NDK_PATH} ]; then
|
||||
echo "found r10d ndk ${NDK_PATH}"
|
||||
FOUND_NDK=true
|
||||
|
||||
ANDROID_NDK=${NDK_PATH}
|
||||
TOOLCHAIN_FILE=../android.toolchain.cmake
|
||||
NATIVE_API_LEVEL="android-21"
|
||||
TOOLCHAIN_NAME="arm-linux-androideabi-4.8"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Search r16b ndk
|
||||
# NOTE: r16b use ndk toolchain file
|
||||
if [ ! ${FOUND_NDK} ]; then
|
||||
NDK_R16B_PATHS=(
|
||||
/home/pub/ndk/android-ndk-r16b/
|
||||
~/work/android/ndk/android-ndk-r16b/
|
||||
)
|
||||
|
||||
for NDK_PATH in ${NDK_R16B_PATHS[@]};
|
||||
do
|
||||
if [ -d ${NDK_PATH} ]; then
|
||||
echo "found r16 ndk ${NDK_PATH}"
|
||||
FOUND_NDK=true
|
||||
|
||||
ANDROID_NDK=${NDK_PATH}
|
||||
TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
NATIVE_API_LEVEL="android-27"
|
||||
TOOLCHAIN_NAME="arm-linux-androideabi-4.9"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ ! ${FOUND_NDK} ]; then
|
||||
echo ${ANDROID_NDK}
|
||||
echo ${TOOLCHAIN_FILE}
|
||||
exit
|
||||
fi
|
||||
|
||||
PLATFORM=$ANDROID_NDK/platforms/${NATIVE_API_LEVEL}/arch-arm
|
||||
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_MAKE_PROGRAM=${MAKE_PROGRAM} \
|
||||
-DANDROID_FORCE_ARM_BUILD=ON \
|
||||
-DANDROID_NDK=${ANDROID_NDK} \
|
||||
-DANDROID_SYSROOT=${PLATFORM} \
|
||||
-DANDROID_ABI="armeabi-v7a with NEON" \
|
||||
-DANDROID_TOOLCHAIN_NAME="arm-linux-androideabi-4.8" \
|
||||
-DANDROID_NATIVE_API_LEVEL=android-21 \
|
||||
-DANDROID_TOOLCHAIN_NAME=${TOOLCHAIN_NAME} \
|
||||
-DANDROID_NATIVE_API_LEVEL=${NATIVE_API_LEVEL} \
|
||||
-DANDROID_STL=system \
|
||||
-DRKPLATFORM=ON \
|
||||
-DMPP_PROJECT_NAME=mpp \
|
||||
-DVPU_PROJECT_NAME=vpu \
|
||||
-DHAVE_DRM=ON \
|
||||
../../../
|
||||
|
||||
cmake --build .
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# usefull cmake debug flag
|
||||
# ----------------------------------------------------------------------------
|
||||
@@ -36,7 +88,6 @@ cmake -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake \
|
||||
#--debug-output \
|
||||
|
||||
#cmake --build . --clean-first -- V=1
|
||||
cmake --build .
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# test script
|
||||
@@ -48,5 +99,3 @@ cmake --build .
|
||||
#adb shell rk_log_test
|
||||
#adb shell rk_thread_test
|
||||
#adb logcat -d|tail -30
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user