mirror of
https://github.com/yuzu-emu/build-environments.git
synced 2025-11-05 00:05:10 +00:00
98 lines
2.7 KiB
Docker
98 lines
2.7 KiB
Docker
FROM ubuntu:18.04
|
|
MAINTAINER quriouspixel
|
|
|
|
ENV QTVER=5.14.2
|
|
ENV QTVERMIN=514
|
|
ENV LLVMVER=10
|
|
ENV GCCVER=10
|
|
|
|
ENV CLANG_BINARY=clang-${LLVMVER}
|
|
ENV CLANGXX_BINARY=clang++-${LLVMVER}
|
|
ENV LLD_BINARY=lld-${LLVMVER}
|
|
ENV GCC_BINARY=gcc-${GCCVER}
|
|
ENV GXX_BINARY=g++-${GCCVER}
|
|
|
|
# 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 -y && \
|
|
apt-get install -y curl software-properties-common apt-transport-https && \
|
|
add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
|
|
add-apt-repository -y ppa:beineri/opt-qt-${QTVER}-bionic && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -y full-upgrade && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
|
|
build-essential \
|
|
dpkg \
|
|
$GCC_BINARY $GXX_BINARY \
|
|
libboost-all-dev \
|
|
liblz4-dev \
|
|
liblzma-dev \
|
|
libsdl2-dev \
|
|
libssl-dev \
|
|
libopus-dev \
|
|
libpthread-stubs0-dev \
|
|
libzip-dev \
|
|
libzstd-dev \
|
|
zlib1g-dev \
|
|
pulseaudio \
|
|
python \
|
|
python-pip \
|
|
python-setuptools \
|
|
qtbase5-dev \
|
|
qtbase5-private-dev \
|
|
qtdeclarative5-dev \
|
|
qttools5-dev \
|
|
qtwebengine5-dev \
|
|
libqt5opengl5-dev \
|
|
libxi-dev \
|
|
libavcodec-dev \
|
|
libudev-dev \
|
|
libevdev-dev \
|
|
libc6-dev \
|
|
libavformat-dev \
|
|
libavdevice-dev \
|
|
libfmt-dev \
|
|
x11-utils \
|
|
wget \
|
|
curl \
|
|
git \
|
|
ccache \
|
|
cmake \
|
|
ninja-build && \
|
|
pip install conan
|
|
|
|
RUN \
|
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCCVER} 10 && \
|
|
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${GCCVER} 10 && \
|
|
. /opt/qt514/bin/qt514-env.sh && \
|
|
gcc --version && \
|
|
g++ --version
|
|
|
|
ENV CMAKEVER=3.18.0
|
|
RUN \
|
|
curl -sLO https://cmake.org/files/v${CMAKEVER%.*}/cmake-${CMAKEVER}-Linux-x86_64.sh && \
|
|
sh cmake-${CMAKEVER}-Linux-x86_64.sh --prefix=/usr --skip-license && \
|
|
rm ./cmake*.sh && \
|
|
cmake --version
|
|
|
|
ENV LIBZIPVER=1.7.3
|
|
RUN \
|
|
curl -sLO https://libzip.org/download/libzip-${LIBZIPVER}.tar.gz && \
|
|
tar -xzf libzip-${LIBZIPVER}.tar.gz && \
|
|
cd libzip-${LIBZIPVER} && \
|
|
mkdir build && cd build && \
|
|
cmake .. -DCMAKE_INSTALL_PREFIX=/usr && \
|
|
make && make install && \
|
|
rm ../../libzip-${LIBZIPVER}.tar.gz
|
|
|
|
RUN apt-get clean autoclean && apt-get autoremove --yes && rm -rf /var/lib/apt /var/lib/cache /var/lib/log
|
|
|
|
RUN mkdir -p /yuzu
|
|
RUN chown yuzu /yuzu
|
|
USER 1027
|
|
WORKDIR /yuzu
|
|
|
|
RUN conan install catch2/2.11.0@ -s compiler.libcxx=libstdc++11 --build=missing && \
|
|
conan install fmt/6.2.0@ -s compiler.libcxx=libstdc++11 --build=missing && \
|
|
conan install nlohmann_json/3.7.3@ -s compiler.libcxx=libstdc++11 --build=missing
|
|
|