|
7 years ago | |
---|---|---|
CMakeModules | 7 years ago | |
bundle | 7 years ago | |
external | 7 years ago | |
qt-patches | 8 years ago | |
release-notes | 7 years ago | |
resources | 7 years ago | |
scripts | 7 years ago | |
src | 7 years ago | |
.clang-format | 9 years ago | |
.clang-tidy | 8 years ago | |
.gitignore | 7 years ago | |
CMakeLists.txt | 7 years ago | |
LICENSE | 9 years ago | |
README.md | 7 years ago | |
conanfile.py | 7 years ago |
You need:
Configure
If you're happy just building from the command line then run CMake for the ninja build tool:
brew install ninja
brew install mpv --with-shared --HEAD
brew install conan
plex
repository to conan: conan remote add plex https://conan.plex.tv
mkdir build ; cd build
conan install ..
cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=output ..
Build (ninja):
ninja
Make a distributable package:
ninja install
(be patient, it's slow)Or if you prefer working in Xcode, run CMake for the xcode build):
mkdir build ; cd build
cmake -GXcode ..
These instructions are for Ubuntu 16.04 LTS. They were tested on a fresh install without extra options and with auto-updates applied.
First, some preparations:
sudo apt install autoconf automake libtool libharfbuzz-dev libfreetype6-dev libfontconfig1-dev
libx11-dev libxrandr-dev libvdpau-dev libva-dev mesa-common-dev libegl1-mesa-dev
yasm libasound2-dev libpulse-dev libuchardet-dev zlib1g-dev libfribidi-dev git
libgnutls-dev libgl1-mesa-dev cmake
mkdir pmp
cd pmp
Systems not based on Debian/Ubuntu will have similar packages, but you'll need to figure out their names yourself.
If your distro provides Qt 5.7.1 or later packages, try to use them. Otherwise, find a Qt download at qt.io.
While most distros have FFmpeg and mpv packages, they're often outdated. It's recommended to build a current version, or to get them from 3rd party sources (some are listed on https://mpv.io/installation/).
Here are instructions how to build them locally. First you need to install some build prerequisites:
git clone https://github.com/mpv-player/mpv-build.git
cd mpv-build
echo --enable-libmpv-shared > mpv_options
echo --disable-cplayer >> mpv_options
to prevent mpv CLI from being built./rebuild -j4
(this steps checks out all sources and compiles them and takes a while)sudo ./install
sudo ldconfig
With this, libmpv should have been installed to /usr/local/
. It does not conflict with the system. In particular, it does not install or use FFmpeg libraries. (The FFmpeg libraries are statically linked in libmpv when using mpv-build.)
You can also attempt to skip the installation step, and change the paths in the PMP build step to the build directory, but this is more complicated.
Usually you can install conan by running: pip install -U conan
.
Now add the plex
repository to conan conan remote add plex https://conan.plex.tv
You can try that it works by running conan search -r plex *@*/public
that should list web-client packages.
Assuming that everything else has installed correctly, building Plex Media Player should now be fairly straightforward:
cd ~/pmp/
git clone git://github.com/plexinc/plex-media-player
cd plex-media-player
mkdir build
cd build
conan install ..
cmake -DCMAKE_BUILD_TYPE=Debug -DQTROOT=/opt/Qt5.6.1/5.6/gcc_64/ -DCMAKE_INSTALL_PREFIX=/usr/local/ ..
make -j4
sudo make install
You should now be able to start PMP as plexmediaplayer
from the terminal.
If you use your distro's Qt, use -DQTROOT=/usr
or similar.
Normally, the Ninja generator (via -GNinja
) is preferred, but cmake + ninja support appears to be broken on Ubuntu 16.04.
If you want, you can wipe the ~/pmp/
directory, as the PMP installation does not depend on it. Only Qt and libmpv are needed.
Sometimes, PMP's cmake run mysteriously fails. It's possible that https://bugreports.qt.io/browse/QTBUG-54666 is causing this. Try the following:
Qt5CoreConfigExtras.cmake
of your Qt build/installationset_property(TARGET Qt5::Core PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype)
with #
Plex Media Player is licensed under GPL v2. See the LICENSE
file.
Licenses of dependencies are summarized under resources/misc/licenses.txt
.
This file can also be printed at runtime when using the --licenses
option.