Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Commit 56a0f54

Browse files
authored
Update build instructions in README (#533)
* Update build instructions in README * Resolve review comments.
1 parent 6f64c40 commit 56a0f54

File tree

1 file changed

+36
-29
lines changed

1 file changed

+36
-29
lines changed

README.md

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
# Open WebRTC Toolkit Native SDK
22

33
## Introduction
4-
The Open WebRTC Toolkit client SDK for native Windows/Linux/Android/iOS applications is built upon the W3C WebRTC standard to accelerate the development of real time communication applications on these platforms. It supports peer to peer and conference mode communication working with Open Media Stream MCU server.
4+
The Open WebRTC Toolkit(OWT) client SDK for native Windows/Linux/Android/iOS applications is built upon the W3C WebRTC standard to accelerate the development
5+
of real time communication applications on these platforms. It supports peer to peer communication, and conference mode communication working with
6+
Open WebRTC Toolkit conference server.
57

6-
- Supported Windows platform: Windows 7 and above.
7-
- Supported Linux platform: Ubuntu 16.04.
8+
- Supported Windows platform: Windows 8 and above.
9+
- Supported Linux platform: Ubuntu 16.04 & 18.04.
810
- Supported iOS platform: iOS 9.0 and above.
911

1012
## Documentation
@@ -15,14 +17,14 @@ You need [Doxygen](http://www.doxygen.nl/) in your path.
1517
## How to build
1618

1719
### Prepare the development environment
18-
Before you start, make sure you have the following prerequisites installed/built:
20+
Before you start, make sure you have the following prerequisites installed/configured:
1921

2022
- [WebRTC stack build dependencies](https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/prerequisite-sw/index.md).
21-
- [OpenSSL 1.1.0l or higher](https://www.openssl.org/source/).
23+
- [OpenSSL 1.1.1k or higher](https://www.openssl.org/source/).
24+
- [Proxy settings](https://github.com/open-webrtc-toolkit/owt-client-native/wiki/Proxy-config-for-building-native-SDK).
2225

2326
The following dependencies are for Windows only:
24-
25-
- [Boost 1.67.0 or higher](https://www.boost.org/users/download/).
27+
- [Visual Studio](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/windows_build_instructions.md#visual-studio).
2628
- [Intel Media SDK for Windows, version 2020 R1 or higher](https://software.intel.com/en-us/media-sdk/choose-download/client).
2729

2830
### Get the code
@@ -45,34 +47,39 @@ target_os = []
4547

4648
### Build
4749
#### Windows
48-
- Set the environment variable `BOOST_ROOT` to your boost source tree.
49-
- Run `gclient sync`. It may take a long time to download a large amount of data.
50-
- Go to the `src/scripts` directory, and run: `python build-win.py --gn_gen --sdk --tests --ssl_root /path/to/ssl --msdk_root /path/to/msdk --output_path /path/to/out`.
51-
The built binary will be under `output_path`, the document for sdk will also be copied to this directory if docs have been generated. If `output_path` is not set,
52-
the built binary will be under `src/out` directory. Note the first time you run this it will take a long time to pull chromium/webrtc dependencies and
53-
require network access to Google's code/storage infrastructure. Set `ssl_root` to the directory of your OpenSSL 1.1.0 binary. Set `msdk_root` to the
54-
directory of your Intel Media SDK for Windows, version 2018 R1 or higher. Use `--gn_gen` to generate args.gn during the first build or when
55-
you change the `msdk_root` or `ssl_root` paths.
56-
- You can also specify `quic_root` to the path containing QUIC library built from owt-deps-quic. This will build the SDK with QUIC enabled for conference mode.
50+
1. Set **DEPOT_TOOLS_WIN_TOOLCHAIN** to **0** in your system environment.
51+
1. Set Visual Studio related environmental variables. You can either call `VsDevCmd.bat` under `Common7\Tools` directory of your Visual Studio installation, or start build in `Developer Command Prompt for VS`.
52+
1. In `src` directory, Run `gclient sync`. It may take long time to download large amount of data the first time you run it. Also you are required to run this whenever `DEPS` file is updated.
53+
1. Go to the `src/scripts` directory, and run: `python build-win.py --gn_gen --sdk --tests --ssl_root /path/to/ssl --msdk_root /path/to/msdk --output_path /path/to/output`.
54+
- The optional `msdk_root` should be set to the directory of your Intel MediaSDK for Windows, version 2020 R1 or higher. This is typically
55+
`C:\Program Files (x86)\IntelSWTools\Intel(R) Media SDK 2020 R1\Software Development Kit`. If specified, will enable hardware accelerated video codecs for most of the video codecs.
56+
- The optional `--sdk` is to inform the build script to use `lib.exe` that is part of Visual Studio toolchain for merging owt libraries with external openssl libraries.
57+
5758

5859
#### Linux
59-
- Run `gclient sync`. It may take a long time to download a large amount of data.
60-
- Go to the `src/scripts` directory, and run: `python build_linux.py --gn_gen --sdk --tests --ssl_root /path/to/ssl --output_path /path/to/out`.
61-
The built binary will be under `output_path`, the document for sdk will also be copied to this directory if docs have been generated.
62-
If `output_path` is not set, the built binary will be under the `src/out` directory. Note the first time you run this it will take a
63-
long time to pull chromium/webrtc dependencies and require network access to Google's code/storage infrastructure. Set `ssl_root` to the
64-
directory of your OpenSSL 1.1.0 binary. Use `--gn_gen` to generate args.gn during the first build or when you change the `ssl_root` path.
65-
If `--msdk_root` is specified to correct Intel MediaSDK path, for example, '/opt/intel/mediasdk', hardware codecs will be built besides the
66-
software implementations. If `--fake_audio` is specified, the internal audio devices implementation based on alsa or pulseaudio will not be built.
60+
1. In `src` direcotry, run `gclient sync`. It may take long time to download large amount of data.
61+
1. Go to the `src/scripts` directory, and run: `python build_linux.py --gn_gen --sdk --tests --ssl_root /path/to/ssl --output_path /path/to/out`.
62+
- If `--msdk_root` is specified to correct Intel MediaSDK path, for example, '/opt/intel/mediasdk', hardware decoders will be built besides the software implementations.
63+
- If the optional `--fake_audio` is specified, the internal audio devices implementation based on alsa or pulseaudio will not be built and a dummy implementation will be used.
64+
65+
Common build options shared by Windows and Linux:
66+
- By default `x86|Debug` library will be created. Specify `--arch x64` if you want to build x64 libraries; Specify `--scheme release` if release version of library is to be built.
67+
- The built binary will be under path specified by `--output_path`. If `--output_path` is not set, the built binary will be under `src/out` directory.
68+
- The optional `--ssl_root` should be set to the root directory of lastest OpenSSL 1.1.1 binary. If specified, SDK will link to external openssl library instead of boringssl.
69+
- Use `--gn_gen` to generate args.gn during the first build or when you change either `ssl_root`/`msdk_root`/`quic_root` options.
70+
- The optional `--quic_root` should point to the directory containing QUIC library pre-built from owt-sdk-quic repo. This will build the SDK with QUIC enabled for conference mode.
71+
- The optional `--tests` will trigger unit tests after build.
6772

6873
#### iOS
69-
- Run `gclient sync`. It may take a long time to download a large amount of data.
70-
- Build OWT iOS SDK with `scripts\build.py`.
74+
Update to latest macOS(Big Sur) and Xcode. iOS SDK can only be built on macOS.
75+
1. Replace the last line of .gclient with target_os=["ios"]
76+
1. Run `gclient sync`. It may take a long time to download a large amount of data.
77+
1. Run `scripts\build.py`.
7178

7279
#### Android
73-
- Replace the last line of .gclient with target_os=["android"]
74-
- Run gclient sync. It may take a long time to download large amount of data.
75-
- Build libwebrtc for OWT Android SDK with scripts/build_android.py.
80+
1. Replace the last line of .gclient with target_os=["android"]
81+
1. Run gclient sync. It may take long time to download large amount of data.
82+
1. Build libwebrtc for OWT Android SDK with scripts/build_android.py.
7683

7784
## How to contribute
7885
We warmly welcome community contributions to the owt-client-native repository. If you are willing to contribute your features and ideas to OWT, follow the process below:

0 commit comments

Comments
 (0)