mirror of
https://github.com/mii443/libdatachannel.git
synced 2025-08-22 15:15:28 +00:00
72 lines
2.2 KiB
Markdown
72 lines
2.2 KiB
Markdown
# libdatachannel - Building instructions
|
|
|
|
## Clone repository and submodules
|
|
|
|
```bash
|
|
$ git clone https://github.com/paullouisageneau/libdatachannel.git
|
|
$ cd libdatachannel
|
|
$ git submodule update --init --recursive
|
|
```
|
|
|
|
## Build with CMake
|
|
|
|
The CMake library targets `libdatachannel` and `libdatachannel-static` respectively correspond to the shared and static libraries. The default target will build tests and examples. The option `USE_GNUTLS` allows to switch between OpenSSL (default) and GnuTLS, and the option `USE_NICE` allows to switch between libjuice as submodule (default) and libnice.
|
|
|
|
If you only need Data Channels, the option `NO_MEDIA` allows to make the library lighter by removing media support. Similarly, `NO_WEBSOCKET` removes WebSocket support.
|
|
|
|
### POSIX-compliant operating systems (including Linux and Apple macOS)
|
|
|
|
```bash
|
|
$ cmake -B build -DUSE_GNUTLS=1 -DUSE_NICE=0
|
|
$ cd build
|
|
$ make -j2
|
|
```
|
|
|
|
### Apple macOS with XCode project
|
|
|
|
```bash
|
|
$ cmake -B "$BUILD_DIR" -DUSE_GNUTLS=0 -DUSE_NICE=0 -G Xcode
|
|
```
|
|
|
|
Xcode project is generated in *build/* directory.
|
|
|
|
#### Solving **Could NOT find OpenSSL** error
|
|
|
|
You need to add OpenSSL root directory if your build fails with the following message:
|
|
|
|
```
|
|
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
|
|
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
|
|
OPENSSL_INCLUDE_DIR)
|
|
```
|
|
|
|
for example:
|
|
```bash
|
|
$ cmake -B build -DUSE_GNUTLS=0 -DUSE_NICE=0 -G Xcode -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl\@1.1/1.1.1h/
|
|
```
|
|
|
|
### Microsoft Windows with MinGW cross-compilation
|
|
```bash
|
|
$ cmake -B build -DCMAKE_TOOLCHAIN_FILE=/usr/share/mingw/toolchain-x86_64-w64-mingw32.cmake # replace with your toolchain file
|
|
$ cd build
|
|
$ make -j2
|
|
```
|
|
|
|
### Microsoft Windows with Microsoft Visual C++
|
|
```bash
|
|
$ cmake -B build -G "NMake Makefiles"
|
|
$ cd build
|
|
$ nmake
|
|
```
|
|
|
|
## Build directly with Make (Linux only)
|
|
|
|
The option `USE_GNUTLS` allows to switch between OpenSSL (default) and GnuTLS, and the option `USE_NICE` allows to switch between libjuice as submodule (default) and libnice.
|
|
|
|
If you only need Data Channels, the option `NO_MEDIA` removes media support. Similarly, `NO_WEBSOCKET` removes WebSocket support.
|
|
|
|
```bash
|
|
$ make USE_GNUTLS=1 USE_NICE=0
|
|
```
|
|
|