opencv/android/scripts/cmake_android.cmd
2011-05-09 23:22:46 +00:00

96 lines
2.2 KiB
Batchfile

@ECHO OFF
:: don't modify the caller's environment
SETLOCAL
:: enable command extensions
VERIFY BADVALUE 2>NUL
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 ECHO Unable to enable command extensions.
:: load configuration
PUSHD %~dp0
IF NOT EXIST .\wincfg.cmd GOTO nocfg
CALL .\wincfg.cmd
SET OPENCV_BUILD_DIR="%cd%"\..\%BUILD_DIR%
POPD
:: path to project root
SET SOURCE_DIR="%cd%"
:: create build dir
::rmdir /S /Q %BUILD_DIR% &:: uncomment this line to rebuild instead of build
MKDIR %BUILD_DIR% 2>NUL
PUSHD %BUILD_DIR%
:: run cmake
ECHO.
ECHO Runnning cmake...
ECHO ARM_TARGET=%ARM_TARGET%
ECHO.
IF NOT EXIST %SOURCE_DIR%\CMakeCache.android.initial.cmake 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%\..
IF ERRORLEVEL 1 GOTO cmakefails
GOTO cmakefin
:other-cmake
%CMAKE_EXE% -G"MinGW Makefiles" -DARM_TARGET="%ARM_TARGET%" -DOpenCV_DIR=%OPENCV_BUILD_DIR% -DCMAKE_PROGRAM_PATH=%SWIG_DIR% -DCMAKE_TOOLCHAIN_FILE=%OPENCV_BUILD_DIR%\..\android.toolchain.cmake -DCMAKE_MAKE_PROGRAM="%MAKE_EXE%" %SOURCE_DIR%
IF ERRORLEVEL 1 GOTO cmakefails
GOTO cmakefin
:cmakefin
:: run make
ECHO.
ECHO Building native libs...
%MAKE_EXE% -j %NUMBER_OF_PROCESSORS% &:: VERBOSE=1
IF ERRORLEVEL 1 GOTO makefail
IF NOT EXIST ..\jni GOTO fin
:: configure java part
POPD
PUSHD .
ECHO.
ECHO Updating Android project...
CALL %ANDROID_SDK%\tools\android update project --name %PROJECT_NAME% --path .
IF ERRORLEVEL 1 GOTO androidfail
:: compile java part
ECHO.
ECHO Compiling Android project...
CALL %ANT_DIR%\bin\ant compile
IF ERRORLEVEL 1 GOTO antfail
GOTO fin
:nocfg
ECHO.
ECHO Could not find wincfg.cmd file.
ECHO.
ECHO You should create opencv\android\scripts\wincfg.cmd
ECHO from template opencv\android\scripts\wincfg.cmd.tmpl
GOTO fin
:antfail
ECHO.
ECHO failed to compile android project
GOTO fin
:androidfail
ECHO.
ECHO failed to update android project
GOTO fin
:makefail
ECHO.
ECHO make failed
GOTO fin
:cmakefail
ECHO.
ECHO cmake failed
GOTO fin
:fin
POPD
ENDLOCAL