1.1. Building with the Proximie SDK

1.1.1. Build prerequisites

Ubuntu

Requires Ubuntu 22.04+

Tooling

This SDK has been developed using:

CMake

3.26.4

g++

11.4.0

clang-tidy

LLVM version 14.0.0

Basic installation

Package

Purpose

Installation

OpenSSL

Required for HTTPS/wss

sudo apt install libssl-dev

GStreamer

Audio & video streaming

GStreamer installation on Ubuntu (will require sudo)

Other GStreamer dependencies

sudo apt-get install gstreamer1.0-nice

Boost

The project uses a recent version of Boost (1.86). For Ubuntu at least we need to build the version we need, but the process is well documented for the various platforms.

Briefly:

  • Don’t use apt install, this will give you a version that is too old.

  • Install the required build tools (some or all of these may already be present):

sudo apt install build-essential g++ python3-dev autotools-dev libicu-dev libbz2-dev
./bootstrap.sh --prefix=/usr/ gcc
  • Next, execute b2 to perform build checks and to build the Boost library:

./b2
  • Now you can install the Boost library using the following command:

sudo ./b2 install

1.1.2. Integrating Proximie SDK

C++

The SDK is compiled with C++ 14 to maximise compatibility balanced with modern C++ features. Future releases of the SDK should support richer C++ features such as C++ 20 coroutines and concepts.

CMake configuration

This section outlines the CMake commands used to build the SDK library, which will be required to link with it.

Packages

find_package(Boost 1.86 REQUIRED COMPONENTS filesystem url)
find_package(OpenSSL REQUIRED)
find_package(PkgConfig)
pkg_search_module(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
pkg_check_modules(GSTREAMER REQUIRED IMPORTED_TARGET gstreamer-1.0)
pkg_check_modules(GST_APP REQUIRED IMPORTED_TARGET gstreamer-app-1.0)
pkg_check_modules(GST_SDP REQUIRED IMPORTED_TARGET gstreamer-sdp-1.0)
pkg_check_modules(GST_VIDEO REQUIRED IMPORTED_TARGET gstreamer-video-1.0)
pkg_check_modules(GST_WEBRTC REQUIRED IMPORTED_TARGET gstreamer-webrtc-1.0)

target_include_directories

Add the SDK include folder to the target_include_directories command.

target_compile_definitions

No additional compile definitions are required.