Android cmake toolchain is reworked for NDK r7; added experimental Android x86 support.
This commit is contained in:
@@ -17,7 +17,7 @@ POPD
|
||||
|
||||
:: defaults
|
||||
IF NOT DEFINED BUILD_DIR SET BUILD_DIR=build
|
||||
IF NOT DEFINED ARM_TARGET SET ARM_TARGET=armeabi-v7a
|
||||
IF NOT DEFINED ANDROID_ABI SET ANDROID_ABI=armeabi-v7a
|
||||
SET OPENCV_BUILD_DIR=%SCRIPTS_DIR%\..\%BUILD_DIR%
|
||||
|
||||
:: check that all required variables defined
|
||||
@@ -49,14 +49,14 @@ PUSHD "%BUILD_DIR%" || (ECHO. & ECHO Directory "%BUILD_DIR%" is not found & GOTO
|
||||
|
||||
:: run cmake
|
||||
ECHO. & ECHO Runnning cmake...
|
||||
ECHO ARM_TARGET=%ARM_TARGET%
|
||||
ECHO ANDROID_ABI=%ANDROID_ABI%
|
||||
ECHO.
|
||||
IF NOT %BUILD_OPENCV%==1 GOTO other-cmake
|
||||
:opencv-cmake
|
||||
("%CMAKE_EXE%" -G"MinGW Makefiles" -DARM_TARGET="%ARM_TARGET%" -C "%SOURCE_DIR%\CMakeCache.android.initial.cmake" -DCMAKE_TOOLCHAIN_FILE="%SOURCE_DIR%"\android.toolchain.cmake -DCMAKE_MAKE_PROGRAM="%MAKE_EXE%" %* "%SOURCE_DIR%\..") && GOTO cmakefin
|
||||
("%CMAKE_EXE%" -G"MinGW Makefiles" -DANDROID_ABI="%ANDROID_ABI%" -C "%SOURCE_DIR%\CMakeCache.android.initial.cmake" -DCMAKE_TOOLCHAIN_FILE="%SOURCE_DIR%"\android.toolchain.cmake -DCMAKE_BUILD_TOOL="%MAKE_EXE%" %* "%SOURCE_DIR%\..") && GOTO cmakefin
|
||||
ECHO. & ECHO cmake failed & GOTO end
|
||||
:other-cmake
|
||||
("%CMAKE_EXE%" -G"MinGW Makefiles" -DARM_TARGET="%ARM_TARGET%" -DOpenCV_DIR="%OPENCV_BUILD_DIR%" -DCMAKE_TOOLCHAIN_FILE="%OPENCV_BUILD_DIR%\..\android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM="%MAKE_EXE%" %* "%SOURCE_DIR%") && GOTO cmakefin
|
||||
("%CMAKE_EXE%" -G"MinGW Makefiles" -DANDROID_ABI="%ANDROID_ABI%" -DOpenCV_DIR="%OPENCV_BUILD_DIR%" -DCMAKE_TOOLCHAIN_FILE="%OPENCV_BUILD_DIR%\..\android.toolchain.cmake" -DCMAKE_BUILD_TOOL="%MAKE_EXE%" %* "%SOURCE_DIR%") && GOTO cmakefin
|
||||
ECHO. & ECHO cmake failed & GOTO end
|
||||
:cmakefin
|
||||
|
||||
@@ -77,4 +77,4 @@ ECHO. & ECHO Compiling Android project...
|
||||
|
||||
:end
|
||||
POPD
|
||||
ENDLOCAL
|
||||
ENDLOCAL
|
||||
|
@@ -4,5 +4,5 @@ cd `dirname $0`/..
|
||||
mkdir -p build_armeabi
|
||||
cd build_armeabi
|
||||
|
||||
cmake -C ../CMakeCache.android.initial.cmake -DARM_TARGET=armeabi -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
cmake -C ../CMakeCache.android.initial.cmake -DANDROID_ABI=armeabi -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
|
||||
|
@@ -4,5 +4,5 @@ cd `dirname $0`/..
|
||||
mkdir -p build_neon
|
||||
cd build_neon
|
||||
|
||||
cmake -C ../CMakeCache.android.initial.cmake -DARM_TARGET="armeabi-v7a with NEON" -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
cmake -C ../CMakeCache.android.initial.cmake -DANDROID_ABI="armeabi-v7a with NEON" -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
|
||||
|
@@ -15,7 +15,7 @@ mkdir opencv
|
||||
#mkdir build-neon
|
||||
#cd build-neon
|
||||
|
||||
#cmake -C "$ANDROID_DIR/CMakeCache.android.initial.cmake" -DARM_TARGET="armeabi-v7a with NEON" -DBUILD_DOCS=OFF -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
#cmake -C "$ANDROID_DIR/CMakeCache.android.initial.cmake" -DANDROID_ABI="armeabi-v7a with NEON" -DBUILD_DOCS=OFF -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
#make -j8 install/strip || exit 1
|
||||
|
||||
#cd "$PRG_DIR/opencv"
|
||||
@@ -29,7 +29,7 @@ cd "$PRG_DIR"
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake -C "$ANDROID_DIR/CMakeCache.android.initial.cmake" -DARM_TARGET="armeabi-v7a" -DBUILD_DOCS=OFF -DBUILD_TESTS=ON -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
cmake -C "$ANDROID_DIR/CMakeCache.android.initial.cmake" -DANDROID_ABI="armeabi-v7a" -DBUILD_DOCS=OFF -DBUILD_TESTS=ON -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
make -j8 install/strip || exit 1
|
||||
|
||||
cd "$PRG_DIR/opencv"
|
||||
@@ -40,7 +40,7 @@ rm -rf doc include src .classpath .project AndroidManifest.xml default.propertie
|
||||
cd "$PRG_DIR/build"
|
||||
rm -rf CMakeCache.txt
|
||||
|
||||
cmake -C "$ANDROID_DIR/CMakeCache.android.initial.cmake" -DARM_TARGET="armeabi" -DBUILD_DOCS=ON -DBUILD_TESTS=ON -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=ON -DINSTALL_ANDROID_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
cmake -C "$ANDROID_DIR/CMakeCache.android.initial.cmake" -DANDROID_ABI="armeabi" -DBUILD_DOCS=ON -DBUILD_TESTS=ON -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=ON -DINSTALL_ANDROID_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
make -j8 install/strip docs || exit 1
|
||||
|
||||
find doc -name "*.pdf" -exec cp {} $PRG_DIR/opencv/doc \;
|
||||
|
@@ -1,8 +1,8 @@
|
||||
:: variables required for OpenCV build ::
|
||||
:: Note: all pathes should be specified without tailing slashes!
|
||||
SET ANDROID_NDK=C:\full\path\to\your\copy\of\android\NDK\android-ndk-r6b
|
||||
SET ANDROID_NDK=C:\full\path\to\your\copy\of\android\NDK\android-ndk-r7
|
||||
SET CMAKE_EXE=C:\full\path\to\cmake\utility\cmake.exe
|
||||
SET MAKE_EXE=C:\full\path\to\native\port\of\make\utility\make.exe
|
||||
SET MAKE_EXE=%ANDROID_NDK%\prebuilt\windows\bin\make.exe
|
||||
|
||||
:: variables required for android-opencv build ::
|
||||
SET ANDROID_SDK=C:\full\path\to\your\copy\of\android\SDK\android-sdk-windows
|
||||
@@ -11,16 +11,20 @@ SET JAVA_HOME=C:\full\path\to\JDK\jdk1.6.0_25
|
||||
|
||||
:: configuration options ::
|
||||
:::: general ARM-V7 settings
|
||||
SET ARM_TARGET=armeabi-v7a
|
||||
SET ANDROID_ABI=armeabi-v7a
|
||||
SET BUILD_DIR=build
|
||||
|
||||
:::: uncomment following lines to compile for emulator or old device
|
||||
::SET ARM_TARGET=armeabi
|
||||
:::: uncomment following lines to compile for old emulator or old device
|
||||
::SET ANDROID_ABI=armeabi
|
||||
::SET BUILD_DIR=build_armeabi
|
||||
|
||||
:::: uncomment following lines to compile for ARM-V7 with NEON support
|
||||
::SET ARM_TARGET=armeabi-v7a with NEON
|
||||
::SET ANDROID_ABI=armeabi-v7a with NEON
|
||||
::SET BUILD_DIR=build_neon
|
||||
|
||||
:::: uncomment following lines to compile for x86
|
||||
::SET ANDROID_ABI=x86
|
||||
::SET BUILD_DIR=build_x86
|
||||
|
||||
:::: other options
|
||||
::SET ANDROID_API_LEVEL=8 &:: android-3 is enough for native part of OpenCV but android-8 is required for Java API and samples
|
||||
::SET ANDROID_NATIVE_API_LEVEL=8 &:: android-3 is enough for native part of OpenCV but android-8 is required for Java API and samples
|
||||
|
Reference in New Issue
Block a user