Vcpkg Library Manager
vcpkg is a C++ library manager for Windows, Linux and MacOS. Consider its prerequisites before going further.
The vcpkg
library manager has preconfigured building procedures for OpenSSL
and pthreads
libraries. They can be easily built and further used as dependencies of SRT library.
Note! vcpkg
does not support LibreSSL
or MbedTLS
libraries.
1. Configure vcpkg
Clone vcpkg
using git, and build it.
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
The current working directory will further be referenced as VCPKG_ROOT
.
set VCPKG_ROOT=%cd%
2. Build SRT
There are two options to build SRT using vcpkg
: by vcpkg
itself (Section 2.1) or use vcpkg
to build openssl
and pthreads
, and then build SRT from sources (Section 2.2). The second case makes it possible to build the latest SRT version, while the first case builds only the version included in vcpkg
.
2.1. Build with vcpkg
SRT is included in vcpkg
(PR 8712). Therefore, Vcpkg can build it with a single command.
vcpkg install libsrt
2.2. Build SRT from sources
2.2.1. Build openssl and pthreads
Then build openssl
and pthreads
libraries using x64 toolset:
vcpkg install pthreads --triplet x64-windows
vcpkg install openssl --triplet x64-windows
The next step is to integrate vcpkg
with the build system, so that CMake
can locate openssl
and pthreads
libraries.
vcpkg integrate install
2.2.2. Build SRT library
Clone the source code of srt
.
git clone https://github.com/Haivision/srt.git srt
The current working directory will further be referenced as SRT_ROOT
.
set SRT_ROOT=%cd%
From the srt
cloned folder SRT_ROOT
run cmake
to generate build configuration files.
cd %SRT_ROOT%
md _build && cd _build
cmake ../ -G "Visual Studio 16 2019" -A x64
-DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake
where SRT_ROOT
and VCPKG_ROOT
were defined above.
To build the project go to %SRT_ROOT%\_build
and run:
cmake --build ./ --config Release
Alternatively Visual Studio IDE can be used by opening the generated solution file SRT.sln
in the _build
folder.