2021-05-25 09:43:34 +00:00
|
|
|
.. _building:
|
|
|
|
|
|
|
|
Building
|
|
|
|
########
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
The following instructions will help you build Looking Glass from source code.
|
|
|
|
Before attempting this, you should have a basic understanding of
|
|
|
|
how to use the shell.
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
.. _download_source:
|
|
|
|
|
|
|
|
Downloading
|
|
|
|
-----------
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
Visit the Looking Glass `Download Page <https://looking-glass.io/downloads>`__,
|
|
|
|
and download the stable version (**recommended**).
|
|
|
|
You can also download a *bleeding-edge version*, or the latest RC version
|
|
|
|
during a Release Candidate cycle.
|
|
|
|
|
|
|
|
Developers can clone the source code repo with ``git``.
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
git clone --recursive https://github.com/gnif/LookingGlass.git
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
Please only clone from Git if you're a developer, and know what you're
|
|
|
|
doing. Looking Glass requires git submodules that must be setup and updated
|
|
|
|
when building. Source code downloads from the website come bundled with the
|
|
|
|
necessary submodules.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
When using the latest bleeding-edge client version,
|
|
|
|
you *MUST* download and install the corresponding host application.
|
|
|
|
|
|
|
|
.. _build_client_section:
|
|
|
|
|
|
|
|
Client
|
|
|
|
------
|
|
|
|
|
|
|
|
.. _installing_build_dependencies:
|
|
|
|
|
|
|
|
Installing Build Dependencies
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
These required libraries and tools should be installed first.
|
|
|
|
|
2021-12-28 08:03:34 +00:00
|
|
|
.. note::
|
|
|
|
|
|
|
|
The below list of dependencies is for Debian. A community maintained list of
|
2021-12-28 08:07:05 +00:00
|
|
|
dependencies for other distributions for the current **stable** version of
|
2021-12-28 08:03:34 +00:00
|
|
|
Looking Glass is maintained on the wiki at:
|
|
|
|
https://looking-glass.io/wiki/Installation_on_other_distributions
|
|
|
|
|
2021-05-25 09:43:34 +00:00
|
|
|
.. _client_dependencies:
|
|
|
|
|
|
|
|
Required Dependencies
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
2022-01-18 23:41:10 +00:00
|
|
|
..
|
|
|
|
Editor note: Listed dependencies are Debian packages containing the
|
|
|
|
required resources. All dependencies must be explicitly defined.
|
|
|
|
Omitting required dependencies that happen to be pulled in via
|
|
|
|
Depends: or Recommends: from another listed package is not allowed.
|
|
|
|
All required packages must be listed.
|
|
|
|
|
2021-05-25 09:43:34 +00:00
|
|
|
- cmake
|
2021-10-20 05:52:47 +00:00
|
|
|
- gcc, g++ \| clang
|
2021-05-25 09:43:34 +00:00
|
|
|
- libegl-dev
|
|
|
|
- libgl-dev
|
2021-10-20 05:52:47 +00:00
|
|
|
- libgles-dev
|
|
|
|
- libfontconfig-dev
|
2021-05-25 09:43:34 +00:00
|
|
|
- libgmp-dev
|
|
|
|
- libspice-protocol-dev
|
|
|
|
- make
|
|
|
|
- nettle-dev
|
|
|
|
- pkg-config
|
|
|
|
|
2021-07-15 14:03:56 +00:00
|
|
|
.. _client_deps_may_be_disabled:
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
May be disabled
|
|
|
|
<<<<<<<<<<<<<<<
|
|
|
|
|
|
|
|
These dependencies are required by default, but may be omitted if their
|
|
|
|
feature is disabled when running :ref:`cmake <client_building>`.
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
- Disable with ``cmake -DENABLE_BACKTRACE=no ..``
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
- binutils-dev
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
- Disable with ``cmake -DENABLE_X11=no ..``
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
- libx11-dev
|
|
|
|
- libxfixes-dev
|
|
|
|
- libxi-dev
|
2021-07-15 14:03:56 +00:00
|
|
|
- libxinerama-dev
|
2021-05-25 09:43:34 +00:00
|
|
|
- libxss-dev
|
2021-07-31 08:23:05 +00:00
|
|
|
- libxcursor-dev
|
2021-08-02 14:04:05 +00:00
|
|
|
- libxpresent-dev
|
2021-05-25 09:43:34 +00:00
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
- Disable with ``cmake -DENABLE_WAYLAND=no ..``
|
2021-05-25 09:43:34 +00:00
|
|
|
|
2021-10-20 05:52:47 +00:00
|
|
|
- libxkbcommon-dev
|
2021-05-25 09:43:34 +00:00
|
|
|
- libwayland-bin
|
|
|
|
- libwayland-dev
|
|
|
|
- wayland-protocols
|
|
|
|
|
2021-12-24 07:43:20 +00:00
|
|
|
- Disable with ``cmake -DENABLE_PIPEWIRE=no ..``
|
|
|
|
|
|
|
|
- libpipewire-0.3-dev
|
2022-01-27 06:58:52 +00:00
|
|
|
- libsamplerate0-dev
|
2021-10-20 05:52:47 +00:00
|
|
|
|
2021-12-26 07:21:21 +00:00
|
|
|
- Disable with ``cmake -DENABLE_PULSEAUDIO=no ..``
|
|
|
|
|
|
|
|
- libpulse-dev
|
2022-01-27 06:58:52 +00:00
|
|
|
- libsamplerate0-dev
|
2021-12-26 07:21:21 +00:00
|
|
|
|
2021-10-20 05:52:47 +00:00
|
|
|
.. _client_deps_recommended:
|
|
|
|
|
|
|
|
Recommended
|
|
|
|
<<<<<<<<<<<
|
|
|
|
|
|
|
|
- fonts-dejavu-core (This is the default UI font, but a random font will
|
|
|
|
be chosen if not available).
|
|
|
|
|
2021-07-15 14:03:56 +00:00
|
|
|
.. _client_fetching_with_apt:
|
|
|
|
|
|
|
|
Fetching with APT
|
|
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
You can fetch these dependencies with the following command:
|
2021-05-25 09:43:34 +00:00
|
|
|
|
2021-12-27 15:57:43 +00:00
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
apt-get install binutils-dev cmake fonts-dejavu-core libfontconfig-dev \
|
|
|
|
gcc g++ pkg-config libegl-dev libgl-dev libgles-dev libspice-protocol-dev \
|
|
|
|
nettle-dev libx11-dev libxcursor-dev libxi-dev libxinerama-dev \
|
2022-01-27 06:58:52 +00:00
|
|
|
libxpresent-dev libxss-dev libxkbcommon-dev libwayland-dev wayland-protocols \
|
|
|
|
libpipewire-0.3-dev libpulse-dev libsamplerate0-dev
|
2021-07-15 14:03:56 +00:00
|
|
|
|
|
|
|
You may omit some dependencies, if you disable the feature which requires them
|
|
|
|
when running :ref:`cmake <client_building>`.
|
|
|
|
(See :ref:`client_deps_may_be_disabled`)
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
.. _client_building:
|
|
|
|
|
|
|
|
Building
|
|
|
|
~~~~~~~~
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
If you've downloaded the source code as a zip file, simply unzip and ``cd``
|
|
|
|
into the new directory. If you've cloned the repo with ``git``, then ``cd``
|
|
|
|
into the *LookingGlass* directory.
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
mkdir client/build
|
|
|
|
cd client/build
|
|
|
|
cmake ../
|
|
|
|
make
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
This will build the **looking-glass-client** binary, which is used to display
|
|
|
|
frames from the guest.
|
2021-05-25 09:43:34 +00:00
|
|
|
|
2022-04-16 13:57:10 +00:00
|
|
|
You can then :ref:`continue installing Looking Glass <client_install>`, or run
|
|
|
|
it directly from the build directory:
|
2021-08-20 23:05:04 +00:00
|
|
|
|
2022-04-16 13:57:10 +00:00
|
|
|
.. code:: bash
|
2021-08-20 23:05:04 +00:00
|
|
|
|
2022-04-16 13:57:10 +00:00
|
|
|
./looking-glass-client
|
2021-08-20 23:05:04 +00:00
|
|
|
|
2021-05-25 09:43:34 +00:00
|
|
|
.. seealso::
|
|
|
|
|
2022-04-16 14:46:41 +00:00
|
|
|
- :ref:`Client Installation <client_install>`
|
2021-07-05 16:00:58 +00:00
|
|
|
- :ref:`Client Usage <client_usage>`
|
2021-05-25 09:43:34 +00:00
|
|
|
|
2022-04-16 13:57:10 +00:00
|
|
|
.. note::
|
|
|
|
|
2022-04-16 14:03:25 +00:00
|
|
|
For users running GNOME on Wayland, you may want to enable libdecor when
|
|
|
|
building.
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
cmake -DENABLE_LIBDECOR=ON ../
|
2022-04-16 13:57:10 +00:00
|
|
|
|
|
|
|
For details, see :ref:`the FAQ <gnome_wayland_decorations>`.
|
|
|
|
|
2021-05-25 09:43:34 +00:00
|
|
|
.. note::
|
|
|
|
|
2022-04-16 14:03:25 +00:00
|
|
|
The most common compile error is related to backtrace support. Try disabling
|
|
|
|
this when building:
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
cmake -DENABLE_BACKTRACE=0 ../
|
|
|
|
|
|
|
|
If you disable this and need support for crash, use ``gdb`` to obtain a
|
|
|
|
backtrace manually.
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
.. _host_building:
|
|
|
|
|
|
|
|
Host
|
|
|
|
----
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
These instructions help you build the host yourself from the
|
|
|
|
:ref:`downloaded source code <download_source>`.
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
.. warning::
|
|
|
|
Building the host from source code is not recommended for most purposes,
|
|
|
|
and should only be attempted by users who are prepared to handle issues
|
|
|
|
on their own. Please download the pre-built binary installers from
|
|
|
|
https://looking-glass.io/downloads for stability, and increased support.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
The pre-built binaries also include NvFBC support built in, which is
|
|
|
|
only available to current Nvidia SDK license holders, and cannot
|
|
|
|
be enabled when building the host without also having a license.
|
|
|
|
|
|
|
|
.. _host_win_on_win:
|
|
|
|
|
|
|
|
For Windows on Windows
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
1. Download and install msys2 x86_64 from
|
|
|
|
`http://www.msys2.org/ <http://www.msys2.org/>`__ following the setup
|
|
|
|
instructions provided
|
2021-07-05 16:00:58 +00:00
|
|
|
|
|
|
|
2. Run the MSYS2 shell
|
|
|
|
|
2021-05-25 09:43:34 +00:00
|
|
|
3. Download build dependencies with pacman
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
pacman -Fy
|
|
|
|
pacman -Sy git make mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
4. Change directory to the source tree with ``cd``
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
5. Configure the project and build it
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
mkdir host/build
|
|
|
|
cd host/build
|
2021-05-25 09:43:34 +00:00
|
|
|
cmake -G "MSYS Makefiles" ..
|
|
|
|
make
|
|
|
|
|
|
|
|
.. _host_linux_on_linux:
|
2021-07-05 16:00:58 +00:00
|
|
|
|
2021-05-25 09:43:34 +00:00
|
|
|
For Linux on Linux
|
|
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
Make a ``host/build`` directory, then run ``cmake``
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
mkdir host/build
|
|
|
|
cd host/build
|
2021-05-25 09:43:34 +00:00
|
|
|
cmake ..
|
|
|
|
make
|
|
|
|
|
|
|
|
.. _host_win_cross_on_linux:
|
|
|
|
|
|
|
|
For Windows cross compiling on Linux
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
Like :ref:`host_linux_on_linux`, but using the mingw64 toolchain to
|
|
|
|
cross-compile a Windows ``.exe`` file.
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
mkdir host/build
|
|
|
|
cd host/build
|
2021-05-25 09:43:34 +00:00
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw64.cmake ..
|
|
|
|
make
|
|
|
|
|
|
|
|
.. _host_build_installer:
|
|
|
|
|
|
|
|
Building the Windows installer
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2021-07-05 16:00:58 +00:00
|
|
|
1. :ref:`Build <host_win_cross_on_linux>` the host on Linux.
|
2021-05-25 09:43:34 +00:00
|
|
|
|
|
|
|
2. Install ``nsis``
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
apt-get install nsis
|
|
|
|
|
|
|
|
3. Use ``makensis`` to build the installer.
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
cd host/build/platform/Windows
|
|
|
|
makensis installer.nsi
|
|
|
|
|
|
|
|
.. _host_questions:
|
|
|
|
|
|
|
|
This will build ``looking-glass-host-setup.exe`` under
|
|
|
|
``host/build/platform/Windows/looking-glass-host-setup.exe``
|
|
|
|
|
|
|
|
.. seealso::
|
|
|
|
|
|
|
|
:ref:`Installing the Host <host_install>`
|