Enable aruco module
[platform/upstream/opencv.git] / samples / _winpack_run_python_sample.cmd
1 @ECHO OFF
2 SETLOCAL
3
4 SET SCRIPT_DIR=%~dp0
5 SET "OPENCV_SETUPVARS_SCRIPT=setup_vars_opencv4.cmd"
6 SET "BUILD_DIR=%SCRIPT_DIR%\..\..\build"
7 IF NOT EXIST "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%" (
8   :: Winpack DLDT
9   SET "BUILD_DIR=%SCRIPT_DIR%\..\..\..\build"
10 )
11 IF NOT EXIST "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%" (
12   ECHO ERROR: OpenCV Winpack installation is required
13   pause
14   exit
15 )
16 :: normalize path
17 for %%i in ("%PACKAGE_BUILD_DIR%") do SET "PACKAGE_BUILD_DIR=%%~fi"
18
19 :: Detect Python binary
20 python -V 2>nul
21 IF %ERRORLEVEL% EQU 0 (
22   SET PYTHON=python
23   GOTO :PYTHON_FOUND
24 )
25
26 CALL :QUERY_PYTHON 3.9
27 IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
28 CALL :QUERY_PYTHON 3.8
29 IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
30 CALL :QUERY_PYTHON 3.7
31 IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
32 CALL :QUERY_PYTHON 3.6
33 IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
34 CALL :QUERY_PYTHON 3.5
35 IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
36 CALL :QUERY_PYTHON 3.4
37 IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
38 CALL :QUERY_PYTHON 2.7
39 IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
40 GOTO :PYTHON_NOT_FOUND
41
42 :QUERY_PYTHON
43 SETLOCAL
44 SET PY_VERSION=%1
45 SET PYTHON_DIR=
46 CALL :regquery "HKCU\SOFTWARE\Python\PythonCore\%PY_VERSION%\InstallPath" PYTHON_DIR
47 IF EXIST "%PYTHON_DIR%\python.exe" (
48   SET "PYTHON=%PYTHON_DIR%\python.exe"
49   GOTO :QUERY_PYTHON_FOUND
50 )
51 CALL :regquery "HKLM\SOFTWARE\Python\PythonCore\%PY_VERSION%\InstallPath" PYTHON_DIR
52 IF EXIST "%PYTHON_DIR%\python.exe" (
53   SET "PYTHON=%PYTHON_DIR%\python.exe"
54   GOTO :QUERY_PYTHON_FOUND
55 )
56
57 ::echo Python %PY_VERSION% is not detected
58 ENDLOCAL
59 EXIT /B 1
60
61 :QUERY_PYTHON_FOUND
62 ECHO Found Python %PY_VERSION% from Windows Registry: %PYTHON%
63 ENDLOCAL & SET PYTHON=%PYTHON%
64 EXIT /B 0
65
66 IF exist C:\Python27-x64\python.exe (
67   SET PYTHON=C:\Python27-x64\python.exe
68   GOTO :PYTHON_FOUND
69 )
70 IF exist C:\Python27\python.exe (
71   SET PYTHON=C:\Python27\python.exe
72   GOTO :PYTHON_FOUND
73 )
74
75 :PYTHON_NOT_FOUND
76 ECHO ERROR: Python not found
77 IF NOT DEFINED OPENCV_BATCH_MODE ( pause )
78 EXIT /B
79
80 :PYTHON_FOUND
81 ECHO Using Python: %PYTHON%
82
83 :: Don't generate unnecessary .pyc cache files
84 SET PYTHONDONTWRITEBYTECODE=1
85
86 IF [%1]==[] goto rundemo
87
88 set SRC_FILENAME=%~dpnx1
89 echo SRC_FILENAME=%SRC_FILENAME%
90 call :dirname "%SRC_FILENAME%" SRC_DIR
91 call :dirname "%PYTHON%" PYTHON_DIR
92 PUSHD %SRC_DIR%
93
94 CALL "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%"
95 :: repair SCRIPT_DIR
96 SET "SCRIPT_DIR=%~dp0"
97
98 ECHO Run: %*
99 %PYTHON% %*
100 SET result=%errorlevel%
101 IF %result% NEQ 0 (
102   IF NOT DEFINED OPENCV_BATCH_MODE (
103     SET "PATH=%PYTHON_DIR%;%PATH%"
104     echo ================================================================================
105     echo **  Type 'python sample_name.py' to run sample
106     echo **  Type 'exit' to exit from interactive shell and open the build directory
107     echo ================================================================================
108     cmd /k echo Current directory: %CD%
109   )
110 )
111
112 POPD
113 EXIT /B %result%
114
115 :rundemo
116 PUSHD "%SCRIPT_DIR%\python"
117
118 CALL "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%"
119 :: repair SCRIPT_DIR
120 SET "SCRIPT_DIR=%~dp0"
121
122 %PYTHON% demo.py
123 SET result=%errorlevel%
124 IF %result% NEQ 0 (
125   IF NOT DEFINED OPENCV_BATCH_MODE ( pause )
126 )
127
128 POPD
129 EXIT /B %result%
130
131
132 :dirname file resultVar
133   setlocal
134   set _dir=%~dp1
135   set _dir=%_dir:~0,-1%
136   endlocal & set %2=%_dir%
137   EXIT /B 0
138
139 :regquery name resultVar
140   SETLOCAL
141   FOR /F "tokens=*" %%A IN ('REG QUERY "%1" /reg:64 /ve 2^>NUL ^| FIND "REG_SZ"') DO SET _val=%%A
142   IF "x%_val%x"=="xx" EXIT /B 1
143   SET _val=%_val:*REG_SZ=%
144   FOR /F "tokens=*" %%A IN ("%_val%") DO SET _val=%%A
145   ENDLOCAL & SET %2=%_val%
146   EXIT /B 0