Skip to content

Commit

Permalink
docs: drop sphinx and use doxygen exclusively (#2932)
Browse files Browse the repository at this point in the history
  • Loading branch information
ReenigneArcher authored Aug 5, 2024
1 parent adf068e commit 4bd521b
Show file tree
Hide file tree
Showing 67 changed files with 4,791 additions and 5,307 deletions.
38 changes: 17 additions & 21 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,14 +150,14 @@ jobs:
mkdir -p build
mkdir -p artifacts
cd build
cmake -DGITHUB_CLONE_URL=${clone_url} \
-B build \
-S . \
-DBUILD_VERSION=${build_version} \
-DGITHUB_BRANCH=${branch} \
-DGITHUB_COMMIT=${commit} \
-DSUNSHINE_CONFIGURE_FLATPAK_MAN=ON \
-DSUNSHINE_CONFIGURE_ONLY=ON \
..
-DSUNSHINE_CONFIGURE_ONLY=ON
- name: Debug Manifest
working-directory: build
Expand Down Expand Up @@ -520,9 +520,10 @@ jobs:
echo "Clone URL: ${clone_url}"
echo "Tag: ${tag}"
mkdir build
cd build
mkdir -p build
cmake \
-B build \
-S . \
-DBUILD_VERSION="${build_version}" \
-DFORMULA_VERSION="${version}" \
-DGITHUB_BRANCH="${branch}" \
Expand All @@ -531,9 +532,7 @@ jobs:
-DGITHUB_DEFAULT_BRANCH="${default_branch}" \
-DGITHUB_TAG="${tag}" \
-DSUNSHINE_CONFIGURE_HOMEBREW=ON \
-DSUNSHINE_CONFIGURE_ONLY=ON \
..
cd ..
-DSUNSHINE_CONFIGURE_ONLY=ON
# copy formula to artifacts
mkdir -p homebrew
Expand Down Expand Up @@ -654,17 +653,16 @@ jobs:
echo "Commit: ${commit}"
echo "Clone URL: ${clone_url}"
mkdir build
cd build
mkdir -p build
cmake \
-B build \
-S . \
-DBUILD_VERSION=${build_version} \
-DGITHUB_BRANCH=${branch} \
-DGITHUB_COMMIT=${commit} \
-DGITHUB_CLONE_URL=${clone_url} \
-DSUNSHINE_CONFIGURE_PORTFILE=ON \
-DSUNSHINE_CONFIGURE_ONLY=ON \
..
cd ..
-DSUNSHINE_CONFIGURE_ONLY=ON
# copy Portfile to artifacts
mkdir -p artifacts
Expand Down Expand Up @@ -1024,7 +1022,6 @@ jobs:
Remove-Item -Path doxygen-setup.exe
- name: Setup python
# use this instead of msys2 python due to known issues using wheels, https://www.msys2.org/docs/python/
id: setup-python
uses: actions/setup-python@v5
with:
Expand All @@ -1048,17 +1045,16 @@ jobs:
BUILD_VERSION: ${{ needs.setup_release.outputs.release_tag }}
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
run: |
mkdir build
cd build
mkdir -p build
cmake \
-B build \
-G Ninja \
-S . \
-DBUILD_WERROR=ON \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DPython_EXECUTABLE='${{ steps.python-path.outputs.python-path }}' \
-DSUNSHINE_ASSETS_DIR=assets \
-DTESTS_SOFTWARE_ENCODER_UNAVAILABLE='skip' \
-G "MinGW Makefiles" \
..
mingw32-make -j$(nproc)
-DTESTS_SOFTWARE_ENCODER_UNAVAILABLE='skip'
ninja -C build
- name: Package Windows
shell: msys2 {0}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
# build directories
build/
cmake-*/
docs/*-doxyconfig*

# npm
node_modules/
Expand Down
8 changes: 4 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
path = third-party/build-deps
url = https://github.com/LizardByte/build-deps.git
branch = dist
[submodule "third-party/doxygen-awesome-css"]
path = third-party/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
branch = main
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
branch = master
[submodule "third-party/googletest"]
path = third-party/googletest
url = https://github.com/google/googletest/
Expand Down
45 changes: 21 additions & 24 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,41 +3,38 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python
build:
os: ubuntu-24.04
tools:
python: "miniconda-latest"
apt_packages:
- libboost-locale-dev # required for rstcheck in cpp code block
jobs:
post_build:
- find ./third-party -iname "*.rst" -type f -delete # find and delete rst files in third-party
- rstcheck -r . # lint rst files
# - rstfmt --check --diff -w 120 . # check rst formatting
commands:
# because we are overriding the build commands, we need to setup the environment ourselves
- cat third-party/doxyconfig/environment.yml
- conda env create --quiet --name ${READTHEDOCS_VERSION} --file third-party/doxyconfig/environment.yml
- npm install "@fortawesome/fontawesome-free"
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp node_modules/@fortawesome/fontawesome-free/css/all.min.css ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- cp node_modules/@fortawesome/fontawesome-free/js/all.min.js ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp -r node_modules/@fortawesome/fontawesome-free/webfonts ${READTHEDOCS_OUTPUT}html/assets/fontawesome/
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/favicon.ico" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.ico
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/logo-128x128.png" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.png
- cp ./third-party/doxyconfig/Doxyfile ./docs/Doxyfile-doxyconfig
- cp ./third-party/doxyconfig/header.html ./docs/header-doxyconfig.html
- cat ./docs/Doxyfile >> ./docs/Doxyfile-doxyconfig
- cd docs && doxygen Doxyfile-doxyconfig

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: docs/environment.yml
environment: third-party/doxyconfig/environment.yml

# submodules required for include statements
submodules:
include: all
recursive: true

# Build documentation in the docs/ directory with Sphinx
sphinx:
builder: html
configuration: docs/source/conf.py
fail_on_warning: true

# Using Sphinx, build docs in additional formats
formats: all

python:
install:
- requirements: ./docs/requirements.txt
25 changes: 16 additions & 9 deletions DOCKER_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ ENTRYPOINT steam && sunshine
Sunshine images are available with the following tag suffixes, based on their respective base images.

- `archlinux`
- `debian-bullseye`
- `fedora-36`
- `fedora-37`
- `ubuntu-20.04`
- `debian-bookworm`
- `fedora-39`
- `fedora-40`
- `ubuntu-22.04`
- `ubuntu-24.04`

### Tags
You must combine the `SUNSHINE_VERSION` and `SUNSHINE_OS` to determine the tag to pull. The format should be
`<SUNSHINE_VERSION>-<SUNSHINE_OS>`. For example, `latest-ubuntu-22.04`.
`<SUNSHINE_VERSION>-<SUNSHINE_OS>`. For example, `latest-ubuntu-24.04`.

See all our available tags on [docker hub](https://hub.docker.com/r/lizardbyte/sunshine/tags) or
[ghcr](https://github.com/LizardByte/Sunshine/pkgs/container/sunshine/versions) for more info.
Expand Down Expand Up @@ -152,8 +152,15 @@ The architectures supported by these images are shown in the table below.
|-----------------|--------------|---------------|
| archlinux | ✅ | ❌ |
| debian-bookworm | ✅ | ✅ |
| debian-bullseye | ✅ | ✅ |
| fedora-38 | ✅ | ✅ |
| fedora-39 | ✅ | ✅ |
| ubuntu-20.04 | ✅ | ✅ |
| fedora-39 | ✅ | ❌ |
| fedora-40 | ✅ | ❌ |
| ubuntu-22.04 | ✅ | ✅ |
| ubuntu-24.04 | ✅ | ✅ |

<div class="section_buttons">

| Previous | Next |
|:-------------------------------|-----------------------------------------------------:|
| [Changelog](docs/changelog.md) | [Third-Party Packages](docs/third_party_packages.md) |

</div>
153 changes: 153 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# Overview

[![GitHub stars](https://img.shields.io/github/stars/lizardbyte/sunshine.svg?logo=github&style=for-the-badge)](https://github.com/LizardByte/Sunshine)
[![GitHub Releases](https://img.shields.io/github/downloads/lizardbyte/sunshine/total.svg?style=for-the-badge&logo=github)](https://github.com/LizardByte/Sunshine/releases/latest)
[![Docker](https://img.shields.io/docker/pulls/lizardbyte/sunshine.svg?style=for-the-badge&logo=docker)](https://hub.docker.com/r/lizardbyte/sunshine)
[![GHCR](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fipitio%2Fbackage%2Fmaster%2Findex%2FLizardByte%2FSunshine%2Fsunshine.json&query=%24.downloads&label=ghcr%20pulls&style=for-the-badge&logo=github)](https://github.com/LizardByte/Sunshine/pkgs/container/sunshine)
[![Winget Version](https://img.shields.io/badge/dynamic/json.svg?color=orange&label=Winget&style=for-the-badge&prefix=v&query=$[-1:].name&url=https%3A%2F%2Fapi.github.com%2Frepos%2Fmicrosoft%2Fwinget-pkgs%2Fcontents%2Fmanifests%2Fl%2FLizardByte%2FSunshine&logo=microsoft)](https://github.com/microsoft/winget-pkgs/tree/master/manifests/l/LizardByte/Sunshine)
[![GitHub Workflow Status (CI)](https://img.shields.io/github/actions/workflow/status/lizardbyte/sunshine/CI.yml.svg?branch=master&label=CI%20build&logo=github&style=for-the-badge)](https://github.com/LizardByte/Sunshine/actions/workflows/CI.yml?query=branch%3Amaster)
[![GitHub Workflow Status (localize)](https://img.shields.io/github/actions/workflow/status/lizardbyte/sunshine/localize.yml.svg?branch=master&label=localize%20build&logo=github&style=for-the-badge)](https://github.com/LizardByte/Sunshine/actions/workflows/localize.yml?query=branch%3Amaster)
[![Read the Docs](https://img.shields.io/readthedocs/sunshinestream.svg?label=Docs&style=for-the-badge&logo=readthedocs)](http://sunshinestream.readthedocs.io)
[![Codecov](https://img.shields.io/codecov/c/gh/LizardByte/Sunshine?token=SMGXQ5NVMJ&style=for-the-badge&logo=codecov&label=codecov)](https://codecov.io/gh/LizardByte/Sunshine)

LizardByte has the full documentation hosted on [Read the Docs](https://sunshinestream.readthedocs.io).

## About

Sunshine is a self-hosted game stream host for Moonlight.
Offering low latency, cloud gaming server capabilities with support for AMD, Intel, and Nvidia GPUs for hardware
encoding. Software encoding is also available. You can connect to Sunshine from any Moonlight client on a variety of
devices. A web UI is provided to allow configuration, and client pairing, from your favorite web browser. Pair from
the local server or any mobile device.

## System Requirements

@warning{These tables are a work in progress. Do not purchase hardware based on this information.}

<table>
<caption id="minimum_requirements">Minimum Requirements</caption>
<tr>
<th>Component</th>
<th>Requirement</th>
</tr>
<tr>
<td rowspan="3">GPU</td>
<td>AMD: VCE 1.0 or higher, see: <a href="https://github.com/obsproject/obs-amd-encoder/wiki/Hardware-Support">obs-amd hardware support</a></td>
</tr>
<tr>
<td>Intel: VAAPI-compatible, see: <a href="https://www.intel.com/content/www/us/en/developer/articles/technical/linuxmedia-vaapi.html">VAAPI hardware support</a></td>
</tr>
<tr>
<td>Nvidia: NVENC enabled cards, see: <a href="https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new">nvenc support matrix</a></td>
</tr>
<tr>
<td rowspan="2">CPU</td>
<td>AMD: Ryzen 3 or higher</td>
</tr>
<tr>
<td>Intel: Core i3 or higher</td>
</tr>
<tr>
<td>RAM</td>
<td>4GB or more</td>
</tr>
<tr>
<td rowspan="5">OS</td>
<td>Windows: 10+ (Windows Server does not support virtual gamepads)</td>
</tr>
<tr>
<td>macOS: 12+</td>
</tr>
<tr>
<td>Linux/Debian: 12+ (bookworm)</td>
</tr>
<tr>
<td>Linux/Fedora: 39+</td>
</tr>
<tr>
<td>Linux/Ubuntu: 22.04+ (jammy)</td>
</tr>
<tr>
<td rowspan="2">Network</td>
<td>Host: 5GHz, 802.11ac</td>
</tr>
<tr>
<td>Client: 5GHz, 802.11ac</td>
</tr>
</table>

<table>
<caption id="4k_suggestions">4k Suggestions</caption>
<tr>
<th>Component</th>
<th>Requirement</th>
</tr>
<tr>
<td rowspan="3">GPU</td>
<td>AMD: Video Coding Engine 3.1 or higher</td>
</tr>
<tr>
<td>Intel: HD Graphics 510 or higher</td>
</tr>
<tr>
<td>Nvidia: GeForce GTX 1080 or higher</td>
</tr>
<tr>
<td rowspan="2">CPU</td>
<td>AMD: Ryzen 5 or higher</td>
</tr>
<tr>
<td>Intel: Core i5 or higher</td>
</tr>
<tr>
<td rowspan="2">Network</td>
<td>Host: CAT5e ethernet or better</td>
</tr>
<tr>
<td>Client: CAT5e ethernet or better</td>
</tr>
</table>

<table>
<caption id="hdr_suggestions">HDR Suggestions</caption>
<tr>
<th>Component</th>
<th>Requirement</th>
</tr>
<tr>
<td rowspan="3">GPU</td>
<td>AMD: Video Coding Engine 3.4 or higher</td>
</tr>
<tr>
<td>Intel: HD Graphics 730 or higher</td>
</tr>
<tr>
<td>Nvidia: Nvidia: Pascal-based GPU (GTX 10-series) or higher</td>
</tr>
<tr>
<td rowspan="2">CPU</td>
<td>AMD: Ryzen 5 or higher</td>
</tr>
<tr>
<td>Intel: Core i5 or higher</td>
</tr>
<tr>
<td rowspan="2">Network</td>
<td>Host: CAT5e ethernet or better</td>
</tr>
<tr>
<td>Client: CAT5e ethernet or better</td>
</tr>
</table>

## Support

Our support methods are listed in our [LizardByte Docs](https://lizardbyte.readthedocs.io/en/latest/about/support.html).

<div class="section_buttons">

| Previous | Next |
|:---------|------------------------------------:|
| | [Overview](docs/getting_started.md) |

</div>
Loading

0 comments on commit 4bd521b

Please sign in to comment.