Skip to content

Commit 396f43d

Browse files
authored
Merge pull request opencv#16938 from alalek:winpack_samples_update
2 parents f6b2b49 + e12b1c2 commit 396f43d

File tree

5 files changed

+77
-21
lines changed

5 files changed

+77
-21
lines changed

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -971,11 +971,11 @@ endif()
971971
# for UNIX it does not make sense as LICENSE and readme will be part of the package automatically
972972
if(ANDROID OR NOT UNIX)
973973
install(FILES ${OPENCV_LICENSE_FILE}
974-
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
974+
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
975975
DESTINATION ./ COMPONENT libs)
976976
if(OPENCV_README_FILE)
977977
install(FILES ${OPENCV_README_FILE}
978-
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
978+
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
979979
DESTINATION ./ COMPONENT libs)
980980
endif()
981981
endif()

modules/videoio/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,7 @@ if(WIN32 AND HAVE_FFMPEG_WRAPPER)
294294
install(FILES "${ffmpeg_path}" DESTINATION ${OPENCV_BIN_INSTALL_PATH} COMPONENT libs RENAME "${ffmpeg_bare_name_ver}")
295295

296296
if(INSTALL_CREATE_DISTRIB)
297-
install(FILES "${ffmpeg_dir}/opencv_ffmpeg.dll" DESTINATION "bin/" COMPONENT libs RENAME "opencv_ffmpeg${OPENCV_DLLVERSION}.dll")
298-
install(FILES "${ffmpeg_dir}/opencv_ffmpeg_64.dll" DESTINATION "bin/" COMPONENT libs RENAME "opencv_ffmpeg${OPENCV_DLLVERSION}_64.dll")
297+
install(FILES "${ffmpeg_dir}/opencv_ffmpeg${FFMPEG_SUFFIX}.dll" DESTINATION "bin/" COMPONENT libs RENAME "opencv_ffmpeg${OPENCV_DLLVERSION}${FFMPEG_SUFFIX}.dll")
299298
endif()
300299
endif()
301300
endmacro()

samples/_winpack_build_sample.cmd

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,24 @@
44
:: - > _winpack_build_sample.cmd cpp\opencv_version.cpp
55
:: Requires:
66
:: - CMake
7-
:: - MSVS 2015/2017
7+
:: - MSVS 2015/2017/2019
88
:: (tools are searched on default paths or environment should be pre-configured)
99
@echo off
1010
setlocal
1111

12-
set SCRIPTDIR=%~dp0
13-
if NOT exist "%SCRIPTDIR%\..\..\build" (
12+
SET SCRIPT_DIR=%~dp0
13+
SET "OPENCV_SETUPVARS_SCRIPT=setup_vars_opencv3.cmd"
14+
SET "PACKAGE_BUILD_DIR=%SCRIPT_DIR%\..\..\build"
15+
IF NOT EXIST "%PACKAGE_BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%" (
16+
:: Winpack DLDT
17+
SET "PACKAGE_BUILD_DIR=%SCRIPT_DIR%\..\..\..\build"
18+
)
19+
IF NOT EXIST "%PACKAGE_BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%" (
1420
set "MSG=OpenCV Winpack installation is required"
1521
goto die
1622
)
23+
:: normalize path
24+
for %%i in ("%PACKAGE_BUILD_DIR%") do SET "PACKAGE_BUILD_DIR=%%~fi"
1725

1826
if [%1]==[] (
1927
set "MSG=Sample path is required"
@@ -35,8 +43,8 @@ set "SRC_NAME=%~n1"
3543
echo SRC_NAME=%SRC_NAME%
3644
echo ================================================================================
3745

38-
:: Path to FFMPEG binary files
39-
set "PATH=%PATH%;%SCRIPTDIR%\..\..\build\bin\"
46+
:: Path to root 'bin' dir
47+
set "PATH=%PACKAGE_BUILD_DIR%\bin;%PATH%"
4048

4149
:: Detect compiler
4250
cl /? >NUL 2>NUL <NUL
@@ -102,20 +110,39 @@ if NOT DEFINED VisualStudioVersion (
102110
if "%VisualStudioVersion%" == "14.0" (
103111
set "CMAKE_GENERATOR=-G^"Visual Studio 14 Win64^""
104112
set "BUILD_DIR_SUFFIX=.vc14"
105-
set "PATH=%PATH%;%SCRIPTDIR%\..\..\build\x64\vc14\bin\"
113+
if EXIST "%PACKAGE_BUILD_DIR%\x64\vc14\bin" (
114+
set "PATH=%PACKAGE_BUILD_DIR%\x64\vc14\bin;%PATH%"
115+
)
106116
) else (
107117
if "%VisualStudioVersion%" == "15.0" (
108118
set "CMAKE_GENERATOR=-G^"Visual Studio 15 Win64^""
109119
set "BUILD_DIR_SUFFIX=.vc15"
110120
set "PATH=%PATH%;%SCRIPTDIR%\..\..\build\x64\vc15\bin\"
121+
if EXIST "%PACKAGE_BUILD_DIR%\x64\vc15\bin" (
122+
set "PATH=%PACKAGE_BUILD_DIR%\x64\vc15\bin;%PATH%"
123+
) else (
124+
if EXIST "%PACKAGE_BUILD_DIR%\x64\vc14\bin" (
125+
set "PATH=%PACKAGE_BUILD_DIR%\x64\vc14\bin;%PATH%"
126+
)
127+
)
111128
) else (
112129
if "%VisualStudioVersion%" == "16.0" (
113130
echo.==========================================
114131
echo.* Note: MSVS 2019 requires CMake 3.14+ *
115132
echo.==========================================
116133
set "CMAKE_GENERATOR=-G^"Visual Studio 16 2019^" -A x64"
117134
set "BUILD_DIR_SUFFIX=.vc16"
118-
set "PATH=%PATH%;%SCRIPTDIR%\..\..\build\x64\vc15\bin\"
135+
if EXIST "%PACKAGE_BUILD_DIR%\x64\vc16\bin" (
136+
set "PATH=%PACKAGE_BUILD_DIR%\x64\vc16\bin;%PATH%"
137+
) else (
138+
if EXIST "%PACKAGE_BUILD_DIR%\x64\vc15\bin" (
139+
set "PATH=%PACKAGE_BUILD_DIR%\x64\vc15\bin;%PATH%"
140+
) else (
141+
if EXIST "%PACKAGE_BUILD_DIR%\x64\vc14\bin" (
142+
set "PATH=%PACKAGE_BUILD_DIR%\x64\vc14\bin;%PATH%"
143+
)
144+
)
145+
)
119146
) else (
120147
set "MSG=Unsupported MSVS version. VisualStudioVersion=%VisualStudioVersion%"
121148
goto die
@@ -128,10 +155,10 @@ call :set_title Create build directory
128155
if NOT exist "%BUILD_DIR%" ( call :execute md "%BUILD_DIR%" )
129156
PUSHD "%BUILD_DIR%"
130157
if NOT exist "%BUILD_DIR%/sample" ( call :execute md "%BUILD_DIR%/sample" )
131-
call :execute copy /Y "%SCRIPTDIR%/CMakeLists.example.in" "%BUILD_DIR%/sample/CMakeLists.txt"
158+
call :execute copy /Y "%SCRIPT_DIR%/CMakeLists.example.in" "%BUILD_DIR%/sample/CMakeLists.txt"
132159

133160
call :set_title Configuring via CMake
134-
call :execute cmake %CMAKE_GENERATOR% "%BUILD_DIR%\sample" -DEXAMPLE_NAME=%SRC_NAME% "-DEXAMPLE_FILE=%SRC_FILENAME%" "-DOpenCV_DIR=%SCRIPTDIR%\..\..\build"
161+
call :execute cmake %CMAKE_GENERATOR% "%BUILD_DIR%\sample" -DEXAMPLE_NAME=%SRC_NAME% "-DEXAMPLE_FILE=%SRC_FILENAME%"
135162
if %ERRORLEVEL% NEQ 0 (
136163
set "MSG=CMake configuration step failed: %BUILD_DIR%"
137164
goto die

samples/_winpack_run_python_sample.cmd

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,19 @@
22
SETLOCAL
33

44
SET SCRIPT_DIR=%~dp0
5-
IF NOT EXIST "%SCRIPT_DIR%\..\..\build\setup_vars_opencv3.cmd" (
5+
SET "OPENCV_SETUPVARS_SCRIPT=setup_vars_opencv3.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%" (
612
ECHO ERROR: OpenCV Winpack installation is required
713
pause
814
exit
915
)
16+
:: normalize path
17+
for %%i in ("%PACKAGE_BUILD_DIR%") do SET "PACKAGE_BUILD_DIR=%%~fi"
1018

1119
:: Detect Python binary
1220
python -V 2>nul
@@ -80,7 +88,11 @@ echo SRC_FILENAME=%SRC_FILENAME%
8088
call :dirname "%SRC_FILENAME%" SRC_DIR
8189
call :dirname "%PYTHON%" PYTHON_DIR
8290
PUSHD %SRC_DIR%
83-
CALL "%SCRIPT_DIR%\..\..\build\setup_vars_opencv3.cmd"
91+
92+
CALL "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%"
93+
:: repair SCRIPT_DIR
94+
SET "SCRIPT_DIR=%~dp0"
95+
8496
ECHO Run: %*
8597
%PYTHON% %*
8698
SET result=%errorlevel%
@@ -94,17 +106,23 @@ IF %result% NEQ 0 (
94106
cmd /k echo Current directory: %CD%
95107
)
96108
)
109+
97110
POPD
98111
EXIT /B %result%
99112

100113
:rundemo
101114
PUSHD "%SCRIPT_DIR%\python"
102-
CALL "%SCRIPT_DIR%\..\..\build\setup_vars_opencv3.cmd"
115+
116+
CALL "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%"
117+
:: repair SCRIPT_DIR
118+
SET "SCRIPT_DIR=%~dp0"
119+
103120
%PYTHON% demo.py
104121
SET result=%errorlevel%
105122
IF %result% NEQ 0 (
106123
IF NOT DEFINED OPENCV_BATCH_MODE ( pause )
107124
)
125+
108126
POPD
109127
EXIT /B %result%
110128

samples/python/demo.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,24 @@ def on_link(self, url):
114114
def on_demo_select(self, evt):
115115
name = self.demos_lb.get( self.demos_lb.curselection()[0] )
116116
fn = self.samples[name]
117-
loc = {}
117+
118+
descr = ""
118119
try:
119-
execfile(fn, loc) # Python 2
120-
except NameError:
121-
exec(open(fn).read(), loc) # Python 3
122-
descr = loc.get('__doc__', 'no-description')
120+
if sys.version_info[0] > 2:
121+
# Python 3.x
122+
module_globals = {}
123+
module_locals = {}
124+
with open(fn, 'r') as f:
125+
module_code = f.read()
126+
exec(compile(module_code, fn, 'exec'), module_globals, module_locals)
127+
descr = module_locals.get('__doc__', 'no-description')
128+
else:
129+
# Python 2
130+
module_globals = {}
131+
execfile(fn, module_globals) # noqa: F821
132+
descr = module_globals.get('__doc__', 'no-description')
133+
except Exception as e:
134+
descr = str(e)
123135

124136
self.linker.reset()
125137
self.text.config(state='normal')

0 commit comments

Comments
 (0)