mirror of
https://github.com/yuzu-emu/build-environments.git
synced 2024-11-25 23:55:50 +01:00
670d16de7c
Adds the qt[version]wayland package to linux-fresh. Required to run the AppImage on Wayland.
89 lines
3.4 KiB
Docker
89 lines
3.4 KiB
Docker
FROM ubuntu:18.04
|
|
MAINTAINER yuzu
|
|
|
|
ENV CLANG_VER=12
|
|
ENV CMAKE_VER=3.16.3
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV GCC_VER=10
|
|
ENV QT_PKG_VER=512
|
|
ENV QT_VER=5.12.6
|
|
ENV UBUNTU_VER=bionic
|
|
|
|
# Create a user account yuzu (UID 1027) that the container will run as
|
|
RUN useradd -m -u 1027 -s /bin/bash yuzu && \
|
|
apt-get update && apt-get -y full-upgrade && \
|
|
apt-get install --no-install-recommends -y \
|
|
build-essential \
|
|
ccache \
|
|
file \
|
|
git \
|
|
gpg-agent \
|
|
liblz4-dev \
|
|
libopus-dev \
|
|
libssl-dev \
|
|
libzip-dev \
|
|
libzstd-dev \
|
|
nasm \
|
|
ninja-build \
|
|
python3-pip \
|
|
python3-setuptools \
|
|
software-properties-common \
|
|
unzip \
|
|
wget \
|
|
zlib1g-dev \
|
|
zsync && \
|
|
pip3 install conan
|
|
# Install updated versions of FFmpeg, GCC, Qt, and SDL2 from launchpad repositories
|
|
RUN add-apt-repository -y ppa:beineri/opt-qt-${QT_VER}-${UBUNTU_VER} && \
|
|
add-apt-repository -y ppa:cybermax-dexter/sdl2-backport && \
|
|
add-apt-repository -y ppa:jonathonf/ffmpeg-4 && \
|
|
add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
|
|
apt-get update -y && \
|
|
apt-get install --no-install-recommends -y \
|
|
g++-${GCC_VER} \
|
|
gcc-${GCC_VER} \
|
|
libavcodec-dev \
|
|
libavutil-dev \
|
|
libsdl2-dev \
|
|
libswscale-dev \
|
|
qt${QT_PKG_VER}base \
|
|
qt${QT_PKG_VER}tools \
|
|
qt${QT_PKG_VER}wayland \
|
|
qt${QT_PKG_VER}webengine && \
|
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_VER} ${GCC_VER} && \
|
|
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${GCC_VER} ${GCC_VER}
|
|
# Install clang from apt.llvm.org
|
|
RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
|
|
echo "deb http://apt.llvm.org/${UBUNTU_VER}/ llvm-toolchain-${UBUNTU_VER}-${CLANG_VER} main" >> /etc/apt/sources.list && \
|
|
apt-get update -y && \
|
|
apt-get install --no-install-recommends -y \
|
|
clang-${CLANG_VER} && \
|
|
ln -s $(which clang-${CLANG_VER}) /usr/bin/clang && \
|
|
ln -s $(which clang++-${CLANG_VER}) /usr/bin/clang++ && \
|
|
dpkg-reconfigure ccache
|
|
RUN apt-get clean autoclean && \
|
|
apt-get autoremove --yes && \
|
|
rm -rf /var/lib/apt /var/lib/dpkg /var/lib/cache /var/lib/log
|
|
# Install glslangValidator from upstream
|
|
# glslangValidator is not available from Ubuntu's Bionic repositories.
|
|
RUN cd /tmp && \
|
|
wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip && \
|
|
unzip glslang-master-linux-Release.zip -d /usr && \
|
|
rm -v glslang-master-linux-Release.zip
|
|
# Install CMake from upstream
|
|
# yuzu requires CMake version 3.15, however Ubuntu only provides 3.10 to Bionic.
|
|
RUN cd /tmp && \
|
|
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VER}/cmake-${CMAKE_VER}-Linux-x86_64.tar.gz && \
|
|
tar xvf cmake-${CMAKE_VER}-Linux-x86_64.tar.gz && \
|
|
cp -rv cmake-${CMAKE_VER}-Linux-x86_64/* /usr && \
|
|
rm -rf cmake-*
|
|
# Setup paths for Qt binaries
|
|
ENV LD_LIBRARY_PATH=/opt/qt${QT_PKG_VER}/lib:${LD_LIBRARY_PATH}
|
|
ENV PATH=/opt/qt${QT_PKG_VER}/bin:${PATH}
|
|
USER 1027
|
|
COPY --chown=yuzu:yuzu settings.yml /home/yuzu/.conan/settings.yml
|
|
RUN conan install boost/1.73.0@ -s compiler.libcxx=libstdc++11 --build=missing && \
|
|
conan install catch2/2.13.0@ -s compiler.libcxx=libstdc++11 --build=missing && \
|
|
conan install fmt/7.1.2@ -s compiler.libcxx=libstdc++11 --build=missing && \
|
|
conan install nlohmann_json/3.9.1@ -s compiler.libcxx=libstdc++11 --build=missing
|