docs: update README and BUILDING

This commit is contained in:
Stéphane Lepin 2019-01-04 11:36:38 +01:00
parent a1c5bc00bc
commit fb616b4b53
2 changed files with 93 additions and 29 deletions

View File

@ -1,21 +1,26 @@
# Compiling obs-websocket # Compiling obs-websocket
## Prerequisites ## Prerequisites
You'll need [Qt 5.10.x](https://download.qt.io/official_releases/qt/5.10/), You'll need [Qt 5.10.x](https://download.qt.io/official_releases/qt/5.10/),
[CMake](https://cmake.org/download/), and a working [development environment for [CMake](https://cmake.org/download/), [Boost](https://www.boost.org/) and a working [OBS Studio development environment](https://obsproject.com/wiki/install-instructions) installed on your
OBS Studio](https://obsproject.com/wiki/install-instructions) installed on your
computer. computer.
## Windows ## Windows
In cmake-gui, you'll have to set the following variables : In cmake-gui, you'll have to set the following variables :
- **QTDIR** (path) : location of the Qt environment suited for your compiler and architecture - **QTDIR** (path) : location of the Qt environment suited for your compiler and architecture
- **LIBOBS_INCLUDE_DIR** (path) : location of the libobs subfolder in the source code of OBS Studio - **LIBOBS_INCLUDE_DIR** (path) : location of the libobs subfolder in the source code of OBS Studio
- **LIBOBS_LIB** (filepath) : location of the obs.lib file - **LIBOBS_LIB** (filepath) : location of the obs.lib file
- **OBS_FRONTEND_LIB** (filepath) : location of the obs-frontend-api.lib file - **OBS_FRONTEND_LIB** (filepath) : location of the obs-frontend-api.lib file
## Linux ## Linux
On Debian/Ubuntu : On Debian/Ubuntu :
```
sudo apt-get install libqt5websockets5-dev ```shell
sudo apt-get install libboost-all-dev
git clone --recursive https://github.com/Palakis/obs-websocket.git git clone --recursive https://github.com/Palakis/obs-websocket.git
cd obs-websocket cd obs-websocket
mkdir build && cd build mkdir build && cd build
@ -25,7 +30,8 @@ sudo make install
``` ```
## OS X ## OS X
As a prerequisite, you will need Xcode for your current OSX version, the command line tools, and [Homebrew](https://brew.sh/).
As a prerequisite, you will need Xcode for your current OSX version, the Xcode command line tools, and [Homebrew](https://brew.sh/).
Homebrew's setup will guide you in getting your system set up, you should be good to go once Homebrew is successfully up and running. Homebrew's setup will guide you in getting your system set up, you should be good to go once Homebrew is successfully up and running.
Use of the Travis macOS CI scripts is recommended. Please note that these Use of the Travis macOS CI scripts is recommended. Please note that these
@ -38,7 +44,7 @@ skip that script.
Of course, you're encouraged to dig through the contents of these scripts to Of course, you're encouraged to dig through the contents of these scripts to
look for issues or specificities. look for issues or specificities.
``` ```shell
git clone --recursive https://github.com/Palakis/obs-websocket.git git clone --recursive https://github.com/Palakis/obs-websocket.git
cd obs-websocket cd obs-websocket
./CI/install-dependencies-macos.sh ./CI/install-dependencies-macos.sh
@ -46,8 +52,10 @@ cd obs-websocket
./CI/build-macos.sh ./CI/build-macos.sh
./CI/package-macos.sh ./CI/package-macos.sh
``` ```
This will result in a ready-to-use `obs-websocket.pkg` installer in the `release` subfolder. This will result in a ready-to-use `obs-websocket.pkg` installer in the `release` subfolder.
## Automated Builds ## Automated Builds
- Windows : [![Automated Build status for Windows](https://ci.appveyor.com/api/projects/status/github/Palakis/obs-websocket)](https://ci.appveyor.com/project/Palakis/obs-websocket/history) - Windows : [![Automated Build status for Windows](https://ci.appveyor.com/api/projects/status/github/Palakis/obs-websocket)](https://ci.appveyor.com/project/Palakis/obs-websocket/history)
- Linux & OS X : [![Automated Build status for Linux & OS X](https://travis-ci.org/Palakis/obs-websocket.svg?branch=master)](https://travis-ci.org/Palakis/obs-websocket) - Linux & OS X : [![Automated Build status for Linux & OS X](https://travis-ci.org/Palakis/obs-websocket.svg?branch=master)](https://travis-ci.org/Palakis/obs-websocket)

View File

@ -4,7 +4,7 @@ Remote control of OBS Studio made easy.
Follow the project on Twitter for news & updates : [@obswebsocket](https://twitter.com/obswebsocket) Follow the project on Twitter for news & updates : [@obswebsocket](https://twitter.com/obswebsocket)
[![Gitter chat](https://badges.gitter.im/obs-websocket/obs-websocket.png)](https://gitter.im/obs-websocket/obs-websocket) [![Build Status - Windows](https://ci.appveyor.com/api/projects/status/github/Palakis/obs-websocket)](https://ci.appveyor.com/project/Palakis/obs-websocket/history) [![Build Status - Linux & OS X](https://travis-ci.org/Palakis/obs-websocket.svg?branch=master)](https://travis-ci.org/Palakis/obs-websocket) [![Build Status - Windows](https://ci.appveyor.com/api/projects/status/github/Palakis/obs-websocket)](https://ci.appveyor.com/project/Palakis/obs-websocket/history) [![Build Status - Linux & OS X](https://travis-ci.org/Palakis/obs-websocket.svg?branch=master)](https://travis-ci.org/Palakis/obs-websocket)
## Downloads ## Downloads
Binaries for Windows and Linux are available in the [Releases](https://github.com/Palakis/obs-websocket/releases) section. Binaries for Windows and Linux are available in the [Releases](https://github.com/Palakis/obs-websocket/releases) section.
@ -20,6 +20,7 @@ It is **highly recommended** to protect obs-websocket with a password against un
- Automate scene switching with a third-party program (e.g. : auto-pilot, foot pedal, ...) - Automate scene switching with a third-party program (e.g. : auto-pilot, foot pedal, ...)
### For developers ### For developers
The server is a typical Websockets server running by default on port 4444 (the port number can be changed in the Settings dialog). The server is a typical Websockets server running by default on port 4444 (the port number can be changed in the Settings dialog).
The protocol understood by the server is documented in [PROTOCOL.md](docs/generated/protocol.md). The protocol understood by the server is documented in [PROTOCOL.md](docs/generated/protocol.md).
@ -29,37 +30,92 @@ Here's a list of available language APIs for obs-websocket :
- Python 2 and 3: [obs-websocket-py](https://github.com/Elektordi/obs-websocket-py) by Guillaume Genty a.k.a Elektordi - Python 2 and 3: [obs-websocket-py](https://github.com/Elektordi/obs-websocket-py) by Guillaume Genty a.k.a Elektordi
- Python 3.5+ with asyncio: [obs-ws-rc](https://github.com/KirillMysnik/obs-ws-rc) by Kirill Mysnik - Python 3.5+ with asyncio: [obs-ws-rc](https://github.com/KirillMysnik/obs-ws-rc) by Kirill Mysnik
I'd like to know what you're building with or for obs-websocket. If you do something in this fashion, feel free to drop me an email at `contact at slepin dot fr` ! I'd like to know what you're building with or for obs-websocket. If you do something in this fashion, feel free to drop me an email at `stephane /dot/ lepin /at/ gmail /dot/ com` !
## Compiling obs-websocket ## Compiling obs-websocket
See the [build instructions](BUILDING.md). See the [build instructions](BUILDING.md).
## Contributing
### Branches
The two main development branches are:
- `4.x-current`: actively-maintained codebase for 4.x releases. Backwards-compatible (unless stated otherwise) with existing clients until 5.0.
- `5.x`: upcoming 5.0 version
**New features and fixes must be based off and contributed to `4.x-current`**, as obs-websocket 5.0 is not in active development yet.
### Pull Requests
Pull Requests must never be based off your fork's main branch (in our case, `4.x-current` or `5.x`). Start your work in a new branch
based on the main one (e.g.: `cool-new-feature`, `fix-palakis-mistakes`, ...) and open a Pull Request once you feel ready to show your work.
If your Pull Request is not ready to merge yet, tag it with the `work in progress` label. You can also use the `help needed` label if you have questions, need a hand or want to ask for input.
### Code style & formatting
Source code is indented with tabs, with spaces allowed for alignment.
Regarding protocol changes: new and updated request types / events must always come with accompanying documentation comments (see existing protocol elements for examples).
These are using to automatically generate the [protocol specification](docs/generated/protocol.md).
Among other recommendations: favor return-early code and avoid wrapping huge portions of code in conditionals. As an example, this:
```cpp
if (success) {
return req->SendOKResponse();
} else {
return req->SendErrorResponse("something went wrong");
}
```
is better like this:
```cpp
if (!success) {
return req->SendErrorResponse("something went wrong");
}
return req->SendOKResponse();
```
## Translations ## Translations
**We need your help on translations**. Please join the localization project on Crowdin: https://crowdin.com/project/obs-websocket
**Your help is welcome on translations**. Please join the localization project on Crowdin: https://crowdin.com/project/obs-websocket
## Special thanks ## Special thanks
In order of appearance:
- [Brendan H.](https://github.com/haganbmj) : Code contributions and gooder English in the Protocol specification In (almost) order of appearance:
- [Mikhail Swift](https://github.com/mikhailswift) : Code contributions
- [Tobias Frahmer](https://github.com/Frahmer) : German localization - [Brendan H.](https://github.com/haganbmj): Code contributions and gooder English in the Protocol specification
- [Genture](https://github.com/Genteure) : Simplified Chinese and Traditional Chinese localizations - [Mikhail Swift](https://github.com/mikhailswift): Code contributions
- [Larissa Gabilan](https://github.com/laris151) : Portuguese localization - [Tobias Frahmer](https://github.com/Frahmer): Initial German localization
- [Andy Asquelt](https://github.com/asquelt) : Polish localization - [Genture](https://github.com/Genteure): Initial Simplified Chinese and Traditional Chinese localizations
- [Marcel Haazen](https://github.com/inpothet) : Dutch localization - [Larissa Gabilan](https://github.com/laris151): Initial Portuguese localization
- [Peter Antonvich](https://github.com/pantonvich) : Code contributions - [Andy Asquelt](https://github.com/asquelt): Initial Polish localization
- [yinzara](https://github.com/yinzara) : Code contributions - [Marcel Haazen](https://github.com/nekocentral): Initial Dutch localization
- [Chris Angelico](https://github.com/Rosuav) : Code contributions - [Peter Antonvich](https://github.com/pantonvich): Code contributions
- [Guillaume "Elektordi" Genty](https://github.com/Elektordi) : Code contributions - [yinzara](https://github.com/yinzara): Code contributions
- [Marwin M](https://github.com/dragonbane0) : Code contributions - [Chris Angelico](https://github.com/Rosuav): Code contributions
- [Logan S.](https://github.com/lsdaniel) : Code contributions - [Guillaume "Elektordi" Genty](https://github.com/Elektordi): Code contributions
- [RainbowEK](https://github.com/RainbowEK) : Code contributions - [Marwin M](https://github.com/dragonbane0): Code contributions
- [RytoEX](https://github.com/RytoEX) : CI script and code contributions - [Logan S.](https://github.com/lsdaniel): Code contributions
- [Theodore Stoddard](https://github.com/TStod) : Code contributions - [RainbowEK](https://github.com/RainbowEK): Code contributions
- [Philip Loche](https://github.com/PicoCentauri) : Code contributions - [RytoEX](https://github.com/RytoEX): CI script and code contributions
- [Theodore Stoddard](https://github.com/TStod): Code contributions
- [Philip Loche](https://github.com/PicoCentauri): Code contributions
- [Patrick Heyer](https://github.com/PatTheMav): Code contributions and CI fixes
- [Alex Van Camp](https://github.com/Lange): Code contributions
- [Freddie Meyer](https://github.com/DungFu): Code contributions
- [Casey Muller](https://github.com/caseymrm): CI fixes
- [Chris Angelico](https://github.com/Rosuav): Documentation fixes
And also: special thanks to supporters of the project! And also: special thanks to supporters of the project!
## Supporters ## Supporters
They have contributed financially to the project and made possible the addition of several features into obs-websocket. Many thanks to them! They have contributed financially to the project and made possible the addition of several features into obs-websocket. Many thanks to them!
--- ---