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_definitions(-Wno-multichar)
|
||||||
# add PIC flag
|
# add PIC flag
|
||||||
add_definitions(-fPIC)
|
add_definitions(-fPIC)
|
||||||
|
# disable exception for C++
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti")
|
||||||
endif(GCC)
|
endif(GCC)
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
@@ -1,39 +1,93 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Run this from within a bash shell
|
# 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`
|
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_BUILD_TYPE=Release \
|
||||||
-DCMAKE_MAKE_PROGRAM=${MAKE_PROGRAM} \
|
-DCMAKE_MAKE_PROGRAM=${MAKE_PROGRAM} \
|
||||||
-DANDROID_FORCE_ARM_BUILD=ON \
|
-DANDROID_FORCE_ARM_BUILD=ON \
|
||||||
-DANDROID_NDK=${ANDROID_NDK} \
|
-DANDROID_NDK=${ANDROID_NDK} \
|
||||||
-DANDROID_SYSROOT=${PLATFORM} \
|
-DANDROID_SYSROOT=${PLATFORM} \
|
||||||
-DANDROID_ABI="arm64-v8a" \
|
-DANDROID_ABI="arm64-v8a" \
|
||||||
-DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-4.9" \
|
-DANDROID_TOOLCHAIN_NAME=${TOOLCHAIN_NAME} \
|
||||||
-DANDROID_NATIVE_API_LEVEL=android-21 \
|
-DANDROID_NATIVE_API_LEVEL=${NATIVE_API_LEVEL} \
|
||||||
-DANDROID_STL=system \
|
-DANDROID_STL=system \
|
||||||
-DRKPLATFORM=ON \
|
-DMPP_PROJECT_NAME=mpp \
|
||||||
|
-DVPU_PROJECT_NAME=vpu \
|
||||||
-DHAVE_DRM=ON \
|
-DHAVE_DRM=ON \
|
||||||
../../../
|
../../../
|
||||||
|
|
||||||
|
cmake --build .
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# usefull cmake debug flag
|
# usefull cmake debug flag
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
#-DMPP_NAME="rockchip_mpp" \
|
||||||
|
#-DVPU_NAME="rockchip_vpu" \
|
||||||
|
#-DHAVE_DRM \
|
||||||
#-DCMAKE_BUILD_TYPE=Debug \
|
#-DCMAKE_BUILD_TYPE=Debug \
|
||||||
#-DCMAKE_VERBOSE_MAKEFILE=true \
|
#-DCMAKE_VERBOSE_MAKEFILE=true \
|
||||||
#--trace \
|
#--trace \
|
||||||
#--debug-output \
|
#--debug-output \
|
||||||
|
|
||||||
#cmake --build . --clean-first -- V=1
|
#cmake --build . --clean-first -- V=1
|
||||||
cmake --build .
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# test script
|
# test script
|
||||||
@@ -45,5 +99,3 @@ cmake --build .
|
|||||||
#adb shell rk_log_test
|
#adb shell rk_log_test
|
||||||
#adb shell rk_thread_test
|
#adb shell rk_thread_test
|
||||||
#adb logcat -d|tail -30
|
#adb logcat -d|tail -30
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,29 +1,81 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Run this from within a bash shell
|
# 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`
|
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_BUILD_TYPE=Release \
|
||||||
-DCMAKE_MAKE_PROGRAM=${MAKE_PROGRAM} \
|
-DCMAKE_MAKE_PROGRAM=${MAKE_PROGRAM} \
|
||||||
-DANDROID_FORCE_ARM_BUILD=ON \
|
-DANDROID_FORCE_ARM_BUILD=ON \
|
||||||
-DANDROID_NDK=${ANDROID_NDK} \
|
-DANDROID_NDK=${ANDROID_NDK} \
|
||||||
-DANDROID_SYSROOT=${PLATFORM} \
|
-DANDROID_SYSROOT=${PLATFORM} \
|
||||||
-DANDROID_ABI="armeabi-v7a with NEON" \
|
-DANDROID_ABI="armeabi-v7a with NEON" \
|
||||||
-DANDROID_TOOLCHAIN_NAME="arm-linux-androideabi-4.8" \
|
-DANDROID_TOOLCHAIN_NAME=${TOOLCHAIN_NAME} \
|
||||||
-DANDROID_NATIVE_API_LEVEL=android-21 \
|
-DANDROID_NATIVE_API_LEVEL=${NATIVE_API_LEVEL} \
|
||||||
-DANDROID_STL=system \
|
-DANDROID_STL=system \
|
||||||
-DRKPLATFORM=ON \
|
-DMPP_PROJECT_NAME=mpp \
|
||||||
|
-DVPU_PROJECT_NAME=vpu \
|
||||||
-DHAVE_DRM=ON \
|
-DHAVE_DRM=ON \
|
||||||
../../../
|
../../../
|
||||||
|
|
||||||
|
cmake --build .
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# usefull cmake debug flag
|
# usefull cmake debug flag
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
@@ -36,7 +88,6 @@ cmake -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake \
|
|||||||
#--debug-output \
|
#--debug-output \
|
||||||
|
|
||||||
#cmake --build . --clean-first -- V=1
|
#cmake --build . --clean-first -- V=1
|
||||||
cmake --build .
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# test script
|
# test script
|
||||||
@@ -48,5 +99,3 @@ cmake --build .
|
|||||||
#adb shell rk_log_test
|
#adb shell rk_log_test
|
||||||
#adb shell rk_thread_test
|
#adb shell rk_thread_test
|
||||||
#adb logcat -d|tail -30
|
#adb logcat -d|tail -30
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user