Skip to content

samples: add winpack "drap & drop" build script#12636

Merged
alalek merged 2 commits intoopencv:3.4from
alalek:winpack_samples_cpp_build_script
Oct 9, 2018
Merged

samples: add winpack "drap & drop" build script#12636
alalek merged 2 commits intoopencv:3.4from
alalek:winpack_samples_cpp_build_script

Conversation

@alalek
Copy link
Copy Markdown
Member

@alalek alalek commented Sep 24, 2018

force_builders=Docs

@alalek
Copy link
Copy Markdown
Member Author

alalek commented Sep 28, 2018

/cc @LaurentBerger

Any ideas about improvements of this script are welcome.

  1. This script works in "winpack" folder only (for example, from OpenCV 4.0.0-alpha release): <winpack>/opencv/samples.
  2. Need to drag&drop .cpp file from "samples" directory on this script (sample should use OpenCV only).
  3. CMake / MSVS should be installed in default paths / or added into PATH.

P.S. Problem with "missing" data files will be resolved separately.

@LaurentBerger
Copy link
Copy Markdown
Contributor

LaurentBerger commented Oct 1, 2018

Nice

I tried
1 - download https://freefr.dl.sourceforge.net/project/opencvlibrary/4.0.0-alpha/opencv-4.0.0-alpha-vc14_vc15.exe and install it in f:/tmp/TestWinpack
2- git clone --single-branch -b winpack_samples_cpp_build_script https://github.com/alalek/opencv.git

and move _winpack_build_sample.cmd and CMakeLists.example.in in f:/tmp/TestWinpack/opencv/sources/samples
then i use drag and drop example

SRC_FILENAME=F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\bg_sub.cpp
SRC_DIR=F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video
SRC_NAME=bg_sub
================================================================================
CMake is detected
=================================================================================
md "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub"
=================================================================================
md "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub/sample"
=================================================================================
copy /Y "F:\tmp\TestWinpack\opencv\sources\samples\/CMakeLists.example.in" "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub/sample/CMakeLists.txt"
        1 fichier(s) copié(s).
=================================================================================
cmake -G"Visual Studio 14 Win64" "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\sample" -DEXAMPLE_NAME=bg_sub "-DEXAMPLE_FILE=F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\bg_sub.cpp" "-DOpenCV_DIR=F:\tmp\TestWinpack\opencv\sources\samples\\..\..\build"
-- Project: bg_sub
-- File   : F:/tmp/TestWinpack/opencv/sources/samples/cpp/tutorial_code/video/bg_sub.cpp
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.17134.
-- The C compiler identification is MSVC 19.0.24215.1
-- The CXX compiler identification is MSVC 19.0.24215.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenCV ARCH: x64
-- OpenCV RUNTIME: vc14
-- OpenCV STATIC: OFF
-- Found OpenCV: F:/tmp/TestWinpack/opencv/build (found version "4.0.0")
-- Found OpenCV 4.0.0 in F:/tmp/TestWinpack/opencv/build/x64/vc14/lib
-- You might need to add F:\tmp\TestWinpack\opencv\build\x64\vc14\bin to your PATH to be able to run your applications.
-- OpenCV library status:
--     config: F:\tmp\TestWinpack\opencv\sources\samples\\..\..\build
--     version: 4.0.0
--     libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_shape;opencv_stitching;opencv_superres;opencv_video;opencv_videoio;opencv_videostab;opencv_world
--     include path: F:/tmp/TestWinpack/opencv/build/include
-- Configuring done
-- Generating done
-- Build files have been written to: F:/tmp/TestWinpack/opencv/sources/samples/cpp/tutorial_code/video/build_bg_sub
=================================================================================
cmake --build . --config Release
Microsoft (R) Build Engine, version 14.0.25420.1
Copyright (C) Microsoft Corporation. Tous droits réservés.

La génération a démarré 01/10/2018 20:18:12.
Projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\ALL_BUILD.vcxproj" sur le noud 1
 (cibles par défaut).
Le projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\ALL_BUILD.vcxproj" (1) génère
 "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\ZERO_CHECK.vcxproj" (2) sur le noud 1
(cibles par défaut).
PrepareForBuild:
  Création du répertoire "x64\Release\ZERO_CHECK\".
  Création du répertoire "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\".
InitializeBuildStatus:
  Création de "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
CustomBuild:
  Checking Build System
  CMake does not need to re-run because F:/tmp/TestWinpack/opencv/sources/samples/cpp/tutorial_code/video/build_bg_sub/
  CMakeFiles/generate.stamp is up-to-date.
FinalizeBuildStatus:
  Suppression du fichier "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\ZERO_CHECK.vcxproj
" terminée (cibles par défaut).

Le projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\ALL_BUILD.vcxproj" (1) génère
 "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\bg_sub.vcxproj" (3) sur le noud 1 (cib
les par défaut).
PrepareForBuild:
  Création du répertoire "bg_sub.dir\Release\".
  Création du répertoire "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\Release\".
  Création du répertoire "bg_sub.dir\Release\bg_sub.tlog\".
InitializeBuildStatus:
  Création de "bg_sub.dir\Release\bg_sub.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
CustomBuild:
  Building Custom Rule F:/tmp/TestWinpack/opencv/sources/samples/cpp/tutorial_code/video/build_bg_sub/sample/CMakeLists
  .txt
  CMake does not need to re-run because F:/tmp/TestWinpack/opencv/sources/samples/cpp/tutorial_code/video/build_bg_sub/
  CMakeFiles/generate.stamp is up-to-date.
ClCompile:
  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\CL.exe /c /IF:\tmp\TestWinpack\opencv\build\include
  /nologo /W3 /WX- /O2 /Ob2 /D WIN32 /D _WINDOWS /D NDEBUG /D "CMAKE_INTDIR=\"Release\"" /D _MBCS /Gm- /EHsc /MD /GS /Z
  c:wchar_t /Zc:forScope /Zc:inline /GR /Fo"bg_sub.dir\Release\\" /Fd"bg_sub.dir\Release\vc140.pdb" /Gd /TP /errorRepor
  t:queue F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\bg_sub.cpp
  bg_sub.cpp
Link:
  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\link.exe /ERRORREPORT:QUEUE /OUT:"F:\tmp\TestWinpack
  \opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\Release\bg_sub.exe" /INCREMENTAL:NO /NOLOGO F:\tmp\TestW
  inpack\opencv\build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib
   F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv
  _world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc
  14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv
  \build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestW
  inpack\opencv\build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib
   F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv
  _world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc
  14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv
  \build\x64\vc14\lib\opencv_world400.lib F:\tmp\TestWinpack\opencv\build\x64\vc14\lib\opencv_world400.lib kernel32.lib
   user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /M
  ANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:"F:/tmp/TestWinpack/opencv/sources/samples/cpp/t
  utorial_code/video/build_bg_sub/Release/bg_sub.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"F:/tm
  p/TestWinpack/opencv/sources/samples/cpp/tutorial_code/video/build_bg_sub/Release/bg_sub.lib" /MACHINE:X64  /machine:
  x64 bg_sub.dir\Release\bg_sub.obj
  bg_sub.vcxproj -> F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\Release\bg_sub.exe
FinalizeBuildStatus:
  Suppression du fichier "bg_sub.dir\Release\bg_sub.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "bg_sub.dir\Release\bg_sub.tlog\bg_sub.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\bg_sub.vcxproj" te
rminée (cibles par défaut).

PrepareForBuild:
  Création du répertoire "x64\Release\ALL_BUILD\".
  Création du répertoire "x64\Release\ALL_BUILD\ALL_BUILD.tlog\".
InitializeBuildStatus:
  Création de "x64\Release\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
CustomBuild:
  Building Custom Rule F:/tmp/TestWinpack/opencv/sources/samples/cpp/tutorial_code/video/build_bg_sub/sample/CMakeLists
  .txt
  CMake does not need to re-run because F:/tmp/TestWinpack/opencv/sources/samples/cpp/tutorial_code/video/build_bg_sub/
  CMakeFiles/generate.stamp is up-to-date.
FinalizeBuildStatus:
  Suppression du fichier "x64\Release\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "x64\Release\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\ALL_BUILD.vcxproj"
 terminée (cibles par défaut).


La génération a réussi.
    0 Avertissement(s)
    0 Erreur(s)

Temps écoulé 00:00:03.53
=================================================================================
"bg_sub.exe" --help
--------------------------------------------------------------------------
This program shows how to use background subtraction methods provided by
 OpenCV. You can process both videos (-vid) and images (-img).

Usage:
./bg_sub {-vid <video filename>|-img <image filename>}
for example: ./bg_sub -vid video.avi
or: ./bg_sub -img /data/images/1.png
--------------------------------------------------------------------------

Incorret input list
exiting...
================================================================================
**  Type 'bg_sub.exe' to run sample application
**  Type 'bg_sub.exe --help' to get list of available options (if available
**  Type 'start ..\bg_sub.sln' to launch MSVS IDE
**  Type 'cmake --build .. --config Release' to rebuild sample
**  Type 'exit' to exit from interactive shell and open the build directory
================================================================================
Current directory: F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\Release

F:\tmp\TestWinpack\opencv\sources\samples\cpp\tutorial_code\video\build_bg_sub\Release>

If i drag and drop videocapture_basic.cpp there is no problem. Second drag and drop gives good result and run example :

SRC_FILENAME=F:\tmp\TestWinpack\opencv\sources\samples\cpp\videocapture_basic.cpp
SRC_DIR=F:\tmp\TestWinpack\opencv\sources\samples\cpp
SRC_NAME=videocapture_basic
================================================================================
CMake is detected
=================================================================================
copy /Y "F:\tmp\TestWinpack\opencv\sources\samples\/CMakeLists.example.in" "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic/sample/CMakeLists.txt"
        1 fichier(s) copié(s).
=================================================================================
cmake -G"Visual Studio 14 Win64" "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\sample" -DEXAMPLE_NAME=videocapture_basic "-DEXAMPLE_FILE=F:\tmp\TestWinpack\opencv\sources\samples\cpp\videocapture_basic.cpp" "-DOpenCV_DIR=F:\tmp\TestWinpack\opencv\sources\samples\\..\..\build"
-- Project: videocapture_basic
-- File   : F:/tmp/TestWinpack/opencv/sources/samples/cpp/videocapture_basic.cpp
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.17134.
-- OpenCV ARCH: x64
-- OpenCV RUNTIME: vc14
-- OpenCV STATIC: OFF
-- Found OpenCV 4.0.0 in F:/tmp/TestWinpack/opencv/build/x64/vc14/lib
-- You might need to add F:\tmp\TestWinpack\opencv\build\x64\vc14\bin to your PATH to be able to run your applications.
-- OpenCV library status:
--     config: F:\tmp\TestWinpack\opencv\sources\samples\\..\..\build
--     version: 4.0.0
--     libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_shape;opencv_stitching;opencv_superres;opencv_video;opencv_videoio;opencv_videostab;opencv_world
--     include path: F:/tmp/TestWinpack/opencv/build/include
-- Configuring done
-- Generating done
-- Build files have been written to: F:/tmp/TestWinpack/opencv/sources/samples/cpp/build_videocapture_basic
=================================================================================
cmake --build . --config Release
Microsoft (R) Build Engine, version 14.0.25420.1
Copyright (C) Microsoft Corporation. Tous droits réservés.

La génération a démarré 01/10/2018 20:21:42.
Projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\ALL_BUILD.vcxproj" sur le noud 1 (cibles
 par défaut).
Le projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\ALL_BUILD.vcxproj" (1) génère "F:\tmp
\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\ZERO_CHECK.vcxproj" (2) sur le noud 1 (cibles par défa
ut).
InitializeBuildStatus:
  Création de "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
CustomBuild:
  Toutes les sorties sont à jour.
FinalizeBuildStatus:
  Suppression du fichier "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\ZERO_CHECK.vcxproj" termin
ée (cibles par défaut).

Le projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\ALL_BUILD.vcxproj" (1) génère "F:\tmp
\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\videocapture_basic.vcxproj" (3) sur le noud 1 (cibles
par défaut).
InitializeBuildStatus:
  Création de "videocapture_basic.dir\Release\videocap.B4ACA0A0.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spéci
  fié.
CustomBuild:
  Toutes les sorties sont à jour.
ClCompile:
  Toutes les sorties sont à jour.
Link:
  Toutes les sorties sont à jour.
  videocapture_basic.vcxproj -> F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\Release\videocap
  ture_basic.exe
FinalizeBuildStatus:
  Suppression du fichier "videocapture_basic.dir\Release\videocap.B4ACA0A0.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "videocapture_basic.dir\Release\videocap.B4ACA0A0.tlog\videocapture_basic.lastbuildstate"
  .
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\videocapture_basic.vcxproj
" terminée (cibles par défaut).

InitializeBuildStatus:
  Création de "x64\Release\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
CustomBuild:
  Toutes les sorties sont à jour.
FinalizeBuildStatus:
  Suppression du fichier "x64\Release\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "x64\Release\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_basic\ALL_BUILD.vcxproj" terminé
e (cibles par défaut).


La génération a réussi.
    0 Avertissement(s)
    0 Erreur(s)

Temps écoulé 00:00:00.70
=================================================================================
"videocapture_basic.exe" --help
Start grabbing
Press any key to terminate

solutions are in F:\tmp\TestWinpack\opencv\sources\samples\cpp ( and not in F:\tmp\TestWinpack\opencv\build? )

I don't think it is very important for a beginner but on my computer I have got VS2015 and VS2017 and cmake choose VS2015

@alalek
Copy link
Copy Markdown
Member Author

alalek commented Oct 1, 2018

@LaurentBerger Thank you!

I developed this on machine with MSVS2017 only.
I will try to test this on machine with both MSVS2015/2017 tomorrow. By original idea, script should pick MSVS2017 in this setup.

@alalek
Copy link
Copy Markdown
Member Author

alalek commented Oct 2, 2018

@LaurentBerger On our build machine with both MSVS2015/2017 script selects MSVS2017 by default. But this machine has minimal and very "clear" setup (PATH is almost empty).
You can try to debug by commenting out the first "echo off" line in the script.

Details
================================================================================
CMake is detected
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.7.5
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
=================================================================================
md "C:\utils\distrib\releases\opencv-4.0.0-alpha\opencv\sources\samples\cpp\build_contours2"
=================================================================================
md "C:\utils\distrib\releases\opencv-4.0.0-alpha\opencv\sources\samples\cpp\build_contours2/sample"
=================================================================================
copy /Y "C:\utils\distrib\releases\opencv-4.0.0-alpha\opencv\sources\samples\/CMakeLists.example.in" "C:\utils\distrib\releases\opencv-4.0.0-alpha\opencv\sources\samples\cpp\build_contours2/sample/CMakeLists.txt"
        1 file(s) copied.
=================================================================================
cmake -G"Visual Studio 15 Win64" "C:\utils\distrib\releases\opencv-4.0.0-alpha\opencv\sources\samples\cpp\build_contours2\sample" -DEXAMPLE_NAME=contours2 "-DEXAMPLE_FILE=C:\utils\distrib\releases\opencv-4.0.0-alpha\opencv\sources\samples\cpp\contours2.cpp" "-DOpenCV_DIR=C:\utils\distrib\releases\opencv-4.0.0-alpha\opencv\sources\samples\\..\..\build"
-- Project: contours2
-- File   : C:/utils/distrib/releases/opencv-4.0.0-alpha/opencv/sources/samples/cpp/contours2.cpp
-- Selecting Windows SDK version 10.0.15063.0 to target Windows 10.0.17134.
-- The C compiler identification is MSVC 19.14.26433.0
-- The CXX compiler identification is MSVC 19.14.26433.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x64/cl.exe -- works
...

@LaurentBerger
Copy link
Copy Markdown
Contributor

LaurentBerger commented Oct 5, 2018

Sorry for delay :

Details

F:\tmp\TestWinpack\opencv\sources\samples\cpp>setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

F:\tmp\TestWinpack\opencv\sources\samples\cpp>set SCRIPTDIR=F:\tmp\TestWinpack\opencv\sources\samples\

F:\tmp\TestWinpack\opencv\sources\samples\cpp>if NOT exist "F:\tmp\TestWinpack\opencv\sources\samples\\..\..\build" (
set "MSG=OpenCV Winpack installation is required"
 goto die
)

F:\tmp\TestWinpack\opencv\sources\samples\cpp>if [F:\tmp\TestWinpack\opencv\sources\samples\cpp\videocapture_starter.cpp] == [] (
set "MSG=Sample path is required"
 goto die
)

F:\tmp\TestWinpack\opencv\sources\samples\cpp>if exist F:\tmp\TestWinpack\opencv\sources\samples\cpp\videocapture_starter.cpp\* (
set "MSG=Only .cpp samples are allowed (not a directory): F:\tmp\TestWinpack\opencv\sources\samples\cpp\videocapture_starter.cpp"
 goto die
)

F:\tmp\TestWinpack\opencv\sources\samples\cpp>if NOT ".cpp" == ".cpp" (
set "MSG=Only .cpp samples are allowed: .cpp"
 goto die
)

F:\tmp\TestWinpack\opencv\sources\samples\cpp>set SRC_FILENAME=F:\tmp\TestWinpack\opencv\sources\samples\cpp\videocapture_starter.cpp

F:\tmp\TestWinpack\opencv\sources\samples\cpp>echo SRC_FILENAME=!SRC_FILENAME!
SRC_FILENAME=F:\tmp\TestWinpack\opencv\sources\samples\cpp\videocapture_starter.cpp

F:\tmp\TestWinpack\opencv\sources\samples\cpp>call :dirname "!SRC_FILENAME!" SRC_DIR

F:\tmp\TestWinpack\opencv\sources\samples\cpp>setlocal

F:\tmp\TestWinpack\opencv\sources\samples\cpp>set _dir=F:\tmp\TestWinpack\opencv\sources\samples\cpp\

F:\tmp\TestWinpack\opencv\sources\samples\cpp>set _dir=F:\tmp\TestWinpack\opencv\sources\samples\cpp

F:\tmp\TestWinpack\opencv\sources\samples\cpp>endlocal   & set SRC_DIR=F:\tmp\TestWinpack\opencv\sources\samples\cpp

F:\tmp\TestWinpack\opencv\sources\samples\cpp>EXIT /B 0

F:\tmp\TestWinpack\opencv\sources\samples\cpp>echo SRC_DIR=!SRC_DIR!
SRC_DIR=F:\tmp\TestWinpack\opencv\sources\samples\cpp

F:\tmp\TestWinpack\opencv\sources\samples\cpp>set "SRC_NAME=videocapture_starter"

F:\tmp\TestWinpack\opencv\sources\samples\cpp>echo SRC_NAME=!SRC_NAME!
SRC_NAME=videocapture_starter

F:\tmp\TestWinpack\opencv\sources\samples\cpp>echo ================================================================================
================================================================================

F:\tmp\TestWinpack\opencv\sources\samples\cpp>set "PATH=!PATH!;!SCRIPTDIR!\..\..\build\bin\"

F:\tmp\TestWinpack\opencv\sources\samples\cpp>cmake --version  1>NUL 2>NUL

F:\tmp\TestWinpack\opencv\sources\samples\cpp>if !ERRORLEVEL! EQU 0 (set CMAKE_FOUND=1 )  else (if exist "C:\Program Files\CMake\bin" (
set "PATH=!PATH!;C:\Program Files\CMake\bin"
 cmake --version  1>NUL 2>NUL
 if !ERRORLEVEL! EQU 0 (set CMAKE_FOUND=1 )
) )

F:\tmp\TestWinpack\opencv\sources\samples\cpp>if NOT DEFINED CMAKE_FOUND (
set "MSG=CMake is required to build OpenCV samples. Download it from here: https://cmake.org/download/ and install into 'C:\Program Files\CMake'"
 goto die
)  else (echo CMake is detected )
CMake is detected

F:\tmp\TestWinpack\opencv\sources\samples\cpp>cl /?  1>NUL 2>NUL 0<NUL

F:\tmp\TestWinpack\opencv\sources\samples\cpp>if !ERRORLEVEL! NEQ 0 (
PUSHD !CD!
 if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvars64.bat" (CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvars64.bat" )  else (if exist "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" (CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 ) )
 POPD
 cl /?  1>NUL 2>NUL 0<NUL
 if !ERRORLEVEL! NEQ 0 (
set "MSG=ERROR: Can't detect Microsoft Visial Studio C++ compiler (cl.exe). MSVS 2015/2017 are supported only from standard locations"
 goto die
)
)
=================================================================================
copy /Y "F:\tmp\TestWinpack\opencv\sources\samples\/CMakeLists.example.in" "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter/sample/CMakeLists.txt"
        1 fichier(s) copié(s).
=================================================================================
cmake -G"Visual Studio 14 Win64" "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\sample" -DEXAMPLE_NAME=videocapture_starter "-DEXAMPLE_FILE=F:\tmp\TestWinpack\opencv\sources\samples\cpp\videocapture_starter.cpp" "-DOpenCV_DIR=F:\tmp\TestWinpack\opencv\sources\samples\\..\..\build"
-- Project: videocapture_starter
-- File   : F:/tmp/TestWinpack/opencv/sources/samples/cpp/videocapture_starter.cpp
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.17134.
-- OpenCV ARCH: x64
-- OpenCV RUNTIME: vc14
-- OpenCV STATIC: OFF
-- Found OpenCV 4.0.0 in F:/tmp/TestWinpack/opencv/build/x64/vc14/lib
-- You might need to add F:\tmp\TestWinpack\opencv\build\x64\vc14\bin to your PATH to be able to run your applications.
-- OpenCV library status:
--     config: F:\tmp\TestWinpack\opencv\sources\samples\\..\..\build
--     version: 4.0.0
--     libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_shape;opencv_stitching;opencv_superres;opencv_video;opencv_videoio;opencv_videostab;opencv_world
--     include path: F:/tmp/TestWinpack/opencv/build/include
-- Configuring done
-- Generating done
-- Build files have been written to: F:/tmp/TestWinpack/opencv/sources/samples/cpp/build_videocapture_starter
=================================================================================
cmake --build . --config Release
Microsoft (R) Build Engine, version 14.0.25420.1
Copyright (C) Microsoft Corporation. Tous droits réservés.

La génération a démarré 05/10/2018 20:33:44.
Projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\ALL_BUILD.vcxproj" sur le noud 1 (cibl
es par défaut).
Le projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\ALL_BUILD.vcxproj" (1) génère "F:\t
mp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\ZERO_CHECK.vcxproj" (2) sur le noud 1 (cibles par
défaut).
InitializeBuildStatus:
  Création de "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
CustomBuild:
  Toutes les sorties sont à jour.
FinalizeBuildStatus:
  Suppression du fichier "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\ZERO_CHECK.vcxproj" term
inée (cibles par défaut).

Le projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\ALL_BUILD.vcxproj" (1) génère "F:\t
mp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\videocapture_starter.vcxproj" (3) sur le noud 1 (c
ibles par défaut).
InitializeBuildStatus:
  Création de "videocapture_starter.dir\Release\videocap.E4E08419.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spé
  cifié.
CustomBuild:
  Toutes les sorties sont à jour.
ClCompile:
  Toutes les sorties sont à jour.
Link:
  Toutes les sorties sont à jour.
  videocapture_starter.vcxproj -> F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\Release\vide
  ocapture_starter.exe
FinalizeBuildStatus:
  Suppression du fichier "videocapture_starter.dir\Release\videocap.E4E08419.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "videocapture_starter.dir\Release\videocap.E4E08419.tlog\videocapture_starter.lastbuildst
  ate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\videocapture_starter.vcx
proj" terminée (cibles par défaut).

InitializeBuildStatus:
  Création de "x64\Release\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
CustomBuild:
  Toutes les sorties sont à jour.
FinalizeBuildStatus:
  Suppression du fichier "x64\Release\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "x64\Release\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\ALL_BUILD.vcxproj" termi
née (cibles par défaut).


La génération a réussi.
    0 Avertissement(s)
    0 Erreur(s)

Temps écoulé 00:00:01.13
=================================================================================
"videocapture_starter.exe" --help
The program captures frames from a video file, image sequence (01.jpg, 02.jpg ... 10.jpg) or camera connected to your computer.
Usage:
videocapture_starter.exe <video file, image sequence or device number>
q,Q,esc -- quit
space   -- save frame

        To capture from a camera pass the device number. To find the device number, try ls /dev/video*
        example: videocapture_starter.exe 0
        You may also pass a video file instead of a device number
        example: videocapture_starter.exe video.avi
        You can also pass the path to an image sequence and OpenCV will treat the sequence just like a video.
        example: videocapture_starter.exe right%%02d.jpg
================================================================================
**  Type 'videocapture_starter.exe' to run sample application
**  Type 'videocapture_starter.exe --help' to get list of available options (if available
**  Type 'start ..\videocapture_starter.sln' to launch MSVS IDE
**  Type 'cmake --build .. --config Release' to rebuild sample
**  Type 'exit' to exit from interactive shell and open the build directory
================================================================================
Current directory: F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videocapture_starter\Release


@LaurentBerger
Copy link
Copy Markdown
Contributor

I don't understand my vs2017 path is:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe"

@alalek
Copy link
Copy Markdown
Member Author

alalek commented Oct 5, 2018

Thanks! The difference is "Professional" vs "Enterprise".
Could you add comment with your path to "vcvars64.bat" in "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" ?

@LaurentBerger
Copy link
Copy Markdown
Contributor

All vcvars*.bat are in folder C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build

and in vcvars64..bat there is only one line :
@call "%~dp0vcvarsall.bat" x64 %*

image

@alalek
Copy link
Copy Markdown
Member Author

alalek commented Oct 6, 2018

@LaurentBerger Thank you! Please check the latest update.

@LaurentBerger
Copy link
Copy Markdown
Contributor

It works 👍

SRC_FILENAME=F:\tmp\TestWinpack\opencv\sources\samples\cpp\videowriter_basic.cpp
SRC_DIR=F:\tmp\TestWinpack\opencv\sources\samples\cpp
SRC_NAME=videowriter_basic
================================================================================
CMake is detected
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.6.3
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
=================================================================================
copy /Y "F:\tmp\TestWinpack\opencv\sources\samples\/CMakeLists.example.in" "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic/sample/CMakeLists.txt"
        1 fichier(s) copié(s).
=================================================================================
cmake -G"Visual Studio 15 Win64" "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\sample" -DEXAMPLE_NAME=videowriter_basic "-DEXAMPLE_FILE=F:\tmp\TestWinpack\opencv\sources\samples\cpp\videowriter_basic.cpp" "-DOpenCV_DIR=F:\tmp\TestWinpack\opencv\sources\samples\\..\..\build"
-- Project: videowriter_basic
-- File   : F:/tmp/TestWinpack/opencv/sources/samples/cpp/videowriter_basic.cpp
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.17134.
-- OpenCV ARCH: x64
-- OpenCV RUNTIME: vc15
-- OpenCV STATIC: OFF
-- Found OpenCV 4.0.0 in F:/tmp/TestWinpack/opencv/build/x64/vc15/lib
-- You might need to add F:\tmp\TestWinpack\opencv\build\x64\vc15\bin to your PATH to be able to run your applications.
-- OpenCV library status:
--     config: F:\tmp\TestWinpack\opencv\sources\samples\\..\..\build
--     version: 4.0.0
--     libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_shape;opencv_stitching;opencv_superres;opencv_video;opencv_videoio;opencv_videostab;opencv_world
--     include path: F:/tmp/TestWinpack/opencv/build/include
-- Configuring done
-- Generating done
-- Build files have been written to: F:/tmp/TestWinpack/opencv/sources/samples/cpp/build_videowriter_basic
=================================================================================
cmake --build . --config Release
Microsoft (R) Build Engine version 15.6.82.30579 pour .NET Framework
Copyright (C) Microsoft Corporation. Tous droits réservés.

La génération a démarré 06/10/2018 15:10:35.
Projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\ALL_BUILD.vcxproj" sur le noud 1 (cibles
par défaut).
Le projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\ALL_BUILD.vcxproj" (1) génère "F:\tmp\
TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\ZERO_CHECK.vcxproj" (2) sur le noud 1 (cibles par défaut
).
InitializeBuildStatus:
  Création de "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
CustomBuild:
  Toutes les sorties sont à jour.
FinalizeBuildStatus:
  Suppression du fichier "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\ZERO_CHECK.vcxproj" terminé
e (cibles par défaut).

Le projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\ALL_BUILD.vcxproj" (1) génère "F:\tmp\
TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\videowriter_basic.vcxproj" (3) sur le noud 1 (cibles par
 défaut).
InitializeBuildStatus:
  Création de "videowriter_basic.dir\Release\videowri.06FF5342.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécif
  ié.
CustomBuild:
  Toutes les sorties sont à jour.
ClCompile:
  Toutes les sorties sont à jour.
Link:
  Toutes les sorties sont à jour.
  videowriter_basic.vcxproj -> F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\Release\videowrite
  r_basic.exe
FinalizeBuildStatus:
  Suppression du fichier "videowriter_basic.dir\Release\videowri.06FF5342.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "videowriter_basic.dir\Release\videowri.06FF5342.tlog\videowriter_basic.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\videowriter_basic.vcxproj"
terminée (cibles par défaut).

InitializeBuildStatus:
  Création de "x64\Release\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
CustomBuild:
  Toutes les sorties sont à jour.
FinalizeBuildStatus:
  Suppression du fichier "x64\Release\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild".
  Mise à jour de l'horodatage "x64\Release\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate".
Génération du projet "F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\ALL_BUILD.vcxproj" terminée
 (cibles par défaut).


La génération a réussi.
    0 Avertissement(s)
    0 Erreur(s)

Temps écoulé 00:00:01.01
=================================================================================
"videowriter_basic.exe" --help
Writing videofile: ./live.avi
Press any key to terminate
================================================================================
**  Type 'videowriter_basic.exe' to run sample application
**  Type 'videowriter_basic.exe --help' to get list of available options (if available
**  Type 'start ..\videowriter_basic.sln' to launch MSVS IDE
**  Type 'cmake --build .. --config Release' to rebuild sample
**  Type 'exit' to exit from interactive shell and open the build directory
================================================================================
Current directory: F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\Release

F:\tmp\TestWinpack\opencv\sources\samples\cpp\build_videowriter_basic\Release>

@alalek
Copy link
Copy Markdown
Member Author

alalek commented Oct 9, 2018

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants