Skip to content

For Windows

oussama Dahmaz edited this page Jun 9, 2020 · 59 revisions

Tools needed

Tool Minimal version Recommended version Testing
Microsoft Visual Studio 2013 (v12) 2017 (v15), 2019 (v16) -

Libraries needed

Library Installation/Compilation
Boost BOOST_ROOT environment variable must point to Boost path. Some libraries must be compiled, see Cmake report
Poco POCO_ROOT environment variable must point to Boost path.
Protobuf PROTOBUF_ROOT environment variable must point to Protobuf path.
OpenSSL OPENSSL_ROOT environment variable must point to OpenSSL path.

Refer to the How to build from sources page to get official versions of dependencies.

Boost

Go to boost.org, download boost and extract it.

bootstrap.bat
b2.exe --with-atomic --with-chrono --with-date_time --with-filesystem --with-regex --with-thread --with-system --with-locale --with-test link=static runtime-link=static

Output libraries should be found in stage folder.

Then, our cmake needs to know the BOOST_ROOT folder. There are two ways to do it:

  1. Either : create the BOOST_ROOT environment variable
  2. Or : edit/add the file "sources/CMakeListsUserConfig.txt" by adding such a line : set(BOOST_ROOT "D:/dev/boost_x_yy_z")

OpenSSL

OpenSSL must be installed before Poco.

**warning only OpenSSL v1.x.y (32 bits) are supported (tested with 1.0.2s and 1.1.1d) **

  1. Install OpenSSL (full version) available here : https://slproweb.com/products/Win32OpenSSL.html .

  2. Build Poco (see below).

  3. Tell Yadoms where to find OpenSSL setting install folder into the Yadoms file "sources/CMakeListsUserConfig.txt", by adding such a line :

set(OPENSSL_ROOT "C:/OpenSSL")

Poco

  1. Go to http://pocoproject.org/ , download the complete edition and extract it.

  2. For Visual Studio 2019 or Visual Studio 2017 and Windows 10, open a developer command prompt

  3. Go to the extracted folder, and build Poco solution files (dont forget to indicate Openssl path):

  • Poco < 1.10.xx
cmake -DOPENSSL_ROOT_DIR="<path_to_>/OpenSSL-Win32" -DENABLE_SEVENZIP=OFF -DENABLE_MONGODB=OFF -DENABLE_REDIS=OFF -DENABLE_DATA=OFF -DENABLE_DATA_SQLITE=OFF -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_ODBC=OFF -DENABLE_PAGECOMPILER=OFF -DENABLE_PAGECOMPILER_FILE2PAGE=OFF -DPOCO_STATIC=ON  -DPOCO_MT=ON -DENABLE_MSVC_MP=ON -DFORCE_OPENSSL=ON -A Win32 .
  • Poco >= 1.10.xx
cmake . -DOPENSSL_ROOT_DIR="<path_to_>/OpenSSL-Win32" -DENABLE_SEVENZIP=OFF -DENABLE_MONGODB=OFF -DENABLE_REDIS=OFF -DENABLE_DATA=OFF -DENABLE_DATA_SQLITE=OFF -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_ODBC=OFF -DENABLE_PAGECOMPILER=OFF -DENABLE_PAGECOMPILER_FILE2PAGE=OFF -DENABLE_JWT=OFF  -DBUILD_SHARED_LIBS=OFF -DPOCO_MT=ON -DFORCE_OPENSSL=ON -A Win32
  1. Build Debug and Release libraries
cmake --build .
cmake --build . --config Release
  1. Tell Yadoms where to find Poco install folder into the Yadoms file "sources/CMakeListsUserConfig.txt", by adding such a line :
set(POCO_ROOT "D:/dev/poco-1.9.0-all")

Protobuf

Download ProtoBufCpp sources here : https://github.com/google/protobuf/releases

Unzip it and build :

md vsprojects
cd vsprojects
cmake ..\cmake -Dprotobuf_BUILD_TESTS=OFF  -A Win32
cmake --build .
cmake --build . --config Release

Tell Yadoms where to find Protobuf install folder into the Yadoms file "sources/CMakeListsUserConfig.txt", by adding such a line :

set(PROTOBUF_ROOT "D:/dev/protobuf-3.7.1")

Python (optional, needed by python script interpreter)

  1. Download the latest 2.7.x version of python 32bits only (2.7.15 at the document redaction) https://www.python.org/downloads/

  2. Install python

  3. Tell Yadoms where to find python setting install folder into the Yadoms file "sources/CMakeListsUserConfig.txt", by adding such a line :

set(PYTHON_ROOT "C:\Python27\")

Swig (optional, needed by python script interpreter)

  1. Download the last version of swig (3.0.5 at the document redaction)

  2. Extract the package into a directory

  3. Tell Yadoms where to find Swig setting install folder into the Yadoms file "sources/CMakeListsUserConfig.txt", by adding such a line :

set(SWIG_ROOT "D:/dev/swigwin/")

OpenCV (optional, needed by some plugins)

  1. Download the latest sources from here

  2. Generate the solution using cmake

cd opencv-<version>
mkdir build
cd build
cmake.exe -DWITH_EIGEN:BOOL="0" -DWITH_IMGCODEC_HDR:BOOL="0" -DBUILD_opencv_ts:BOOL="0" -DBUILD_opencv_video:BOOL="0" -DWITH_TIFF:BOOL="0" -DBUILD_PACKAGE:BOOL="0" -DBUILD_opencv_features2d:BOOL="0" -DBUILD_ITT:BOOL="0" -Dthunder:BOOL="0" -Dlzw:BOOL="0" -DCV_TRACE:BOOL="0" -DWITH_MSMF:BOOL="0" -DWITH_FFMPEG:BOOL="0" -DWITH_IMGCODEC_PXM:BOOL="0" -DWITH_MSMF_DXVA:BOOL="0" -DCPACK_SOURCE_ZIP:BOOL="0" -Dpackbits:BOOL="0" -DBUILD_opencv_apps:BOOL="0" -DBUILD_PROTOBUF:BOOL="0" -DBUILD_opencv_objdetect:BOOL="0" -DBUILD_IPP_IW:BOOL="0" -DBUILD_opencv_videoio:BOOL="0" -DBUILD_PERF_TESTS:BOOL="0" -Dmdi:BOOL="0" -DWITH_1394:BOOL="0" -DINSTALL_PDB:BOOL="0" -DWITH_OPENCL:BOOL="0" -DM_LIBRARY:FILEPATH="M_LIBRARY-NOTFOUND" -DUSE_WIN32_FILEIO:BOOL="1" -DCPACK_SOURCE_7Z:BOOL="0" -DBUILD_opencv_stitching:BOOL="0" -Dccitt:BOOL="0" -DVIDEOIO_ENABLE_STRICT_PLUGIN_CHECK:BOOL="0" -DWITH_IPP:BOOL="0" -DBUILD_opencv_dnn:BOOL="0" -DWITH_ITT:BOOL="0" -DCPACK_BINARY_NSIS:BOOL="0" -DBUILD_opencv_photo:BOOL="0" -DBUILD_opencv_calib3d:BOOL="0" -DWITH_QUIRC:BOOL="0" -DWITH_WEBP:BOOL="0" -DBUILD_opencv_python_bindings_generator:BOOL="0" -DWITH_PROTOBUF:BOOL="0" -DBUILD_JASPER:BOOL="1" -DWITH_OPENCLAMDBLAS:BOOL="0" -DBUILD_JAVA:BOOL="0" -DWITH_VTK:BOOL="0" -DBUILD_opencv_java_bindings_generator:BOOL="0" -DBUILD_opencv_highgui:BOOL="0" -DWITH_ARITH_DEC:BOOL="0" -DWITH_IMGCODEC_SUNRASTER:BOOL="0" -DWITH_ADE:BOOL="0" -DBUILD_OPENEXR:BOOL="0" -DWITH_OPENEXR:BOOL="0" -DWITH_OPENCLAMDFFT:BOOL="0" -DVIDEOIO_ENABLE_PLUGINS:BOOL="0" -DWITH_DSHOW:BOOL="0" -DOPENCV_DNN_OPENCL:BOOL="0" -DWITH_LAPACK:BOOL="0" -DWITH_IMGCODEC_PFM:BOOL="0" -Dlogluv:BOOL="0" -DINSTALL_PDB_COMPONENT_EXCLUDE_FROM_ALL:BOOL="0" -DBUILD_opencv_ml:BOOL="0" -DOPENCV_ENABLE_MEMALIGN:BOOL="0" -DBUILD_opencv_python_tests:BOOL="0" -DCV_ENABLE_INTRINSICS:BOOL="0" -DOPENCL_FOUND:BOOL="0" -DWITH_OPENCL_D3D11_NV:BOOL="0" -Dnext:BOOL="0" -DBUILD_opencv_gapi:BOOL="0" -DBUILD_opencv_flann:BOOL="0" -DBUILD_TESTS:BOOL="0" -DWITH_DIRECTX:BOOL="0" -DCMAKE_BUILD_TYPE=RELEASE ..
  1. Open the solution build\OpenCV.sln using Visual Studio

  2. Change the build mode to Release instead of Debug

  3. Set ALL_build solution as startup project

  4. Build the solution

  5. Right-click on INSTALL solution and build it

  6. Tell Yadoms where to find OpenCV into the Yadoms file "sources/CMakeListsUserConfig.txt", by adding such a line :

set(OpenCV_DIR "C:/dev/opencv-<version>/build/install/x86/vc16/staticlib")

PostgreSQL (optional, if you want use PostgreSQL instead of SQLite as database engine)

  1. Download the last version of PostgreSQL (9.6.1 at the document redaction). Choose the 32-bits version.

  2. Extract the package into a directory

  3. Tell Yadoms where to find PostgreSQL setting install folder into the Yadoms file "sources/CMakeListsUserConfig.txt", by adding such a line :

set(PostgreSQL_ROOT "D:/dev/pgsql")
  1. Set PostgreSQL parameters in yadoms.ini file (in the Yadoms binary folder after Yadoms build)

Build

First build the Visual Studio solution, by running our batch file :

cmake_windows.cmd

The projects and solution are generated in the projects folder. To build, you can open projects/yadoms.sln with your IDE, or use this command line (from projects folder) :

cmake --build . --config Release

Replace Release by Debug to build debug version.

Binaries will be written into builds folder.

Debug

Change the working directory in the debugger properties of the project yadoms by :

$(TargetDir)
Clone this wiki locally