118 lines
5.4 KiB
Docker
118 lines
5.4 KiB
Docker
FROM ubuntu:20.04
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
RUN sed -i 's/htt[p|ps]:\/\/archive.ubuntu.com\/ubuntu\//mirror:\/\/mirrors.ubuntu.com\/mirrors.txt/g' /etc/apt/sources.list
|
|
RUN apt update && apt install -y git \
|
|
build-essential \
|
|
pkg-config \
|
|
ninja-build \
|
|
libgl1-mesa-dev \
|
|
autotools-dev \
|
|
autoconf \
|
|
libtool \
|
|
libfribidi-dev \
|
|
libharfbuzz-dev \
|
|
libfontconfig1-dev \
|
|
libx11-dev \
|
|
nasm \
|
|
libxv-dev \
|
|
libva-dev \
|
|
liblcms2-dev \
|
|
libdrm-dev \
|
|
libasound2-dev \
|
|
libgnutls28-dev \
|
|
libmp3lame-dev \
|
|
libvorbis-dev \
|
|
libopus-dev \
|
|
libtheora-dev \
|
|
libvpx-dev \
|
|
libx264-dev \
|
|
libx265-dev \
|
|
libpulse-dev \
|
|
libxext-dev \
|
|
libxpresent-dev \
|
|
libxrandr-dev \
|
|
libxss-dev \
|
|
libwebp-dev \
|
|
libxkbcommon-dev \
|
|
libpulse-dev \
|
|
libxkbcommon-x11-dev \
|
|
binutils \
|
|
python3-pip \
|
|
fuse3 \
|
|
libpipewire-0.2-dev \
|
|
libfreetype-dev \
|
|
glslang-dev \
|
|
wget \
|
|
libxcb-cursor0 libxcb-ewmh2 libxcb-icccm4 luajit libluajit-5.1-dev libpcsclite1 libxcb-keysyms1 libxcb-shape0 libjpeg-dev \
|
|
libfontconfig1-dev \
|
|
libfreetype-dev \
|
|
libgtk-3-dev \
|
|
libx11-dev \
|
|
libx11-xcb-dev \
|
|
libxcb-cursor-dev \
|
|
libxcb-glx0-dev \
|
|
libxcb-icccm4-dev \
|
|
libxcb-image0-dev \
|
|
libxcb-keysyms1-dev \
|
|
libxcb-randr0-dev \
|
|
libxcb-render-util0-dev \
|
|
libxcb-shape0-dev \
|
|
libxcb-shm0-dev \
|
|
libxcb-sync-dev \
|
|
libxcb-util-dev \
|
|
libxcb-xfixes0-dev \
|
|
libxcb-xkb-dev \
|
|
libxcb1-dev \
|
|
libxext-dev \
|
|
libxfixes-dev \
|
|
libxi-dev \
|
|
libxkbcommon-dev \
|
|
libxkbcommon-x11-dev \
|
|
libxrender-dev \
|
|
libmediainfo0v5
|
|
RUN pip3 install meson
|
|
RUN useradd -m builder
|
|
RUN wget https://github.com/Kitware/CMake/releases/download/v4.0.3/cmake-4.0.3-linux-x86_64.sh -O /tmp/cmake.sh
|
|
RUN chmod +x /tmp/cmake.sh && /tmp/cmake.sh --skip-license --prefix=/usr
|
|
RUN git clone https://github.com/google/shaderc.git /deps/shaderc && cd /deps/shaderc && /deps/shaderc/utils/git-sync-deps && mkdir -p /deps/shaderc/build && cd /deps/shaderc/build && \
|
|
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON \
|
|
/deps/shaderc && \
|
|
ninja && ninja install && rm -rf /deps/shaderc
|
|
RUN git clone https://github.com/Cyan4973/xxHash.git /deps/xxHash && cd /deps/xxHash && make && make install && rm -rf /deps/xxHash
|
|
RUN git clone https://code.videolan.org/videolan/dav1d.git /deps/dav1d && cd /deps/dav1d && git checkout 1.5.1 && \
|
|
mkdir -p /deps/dav1d/build && cd /deps/dav1d/build && \
|
|
meson setup .. --default-library=static --buildtype=release --prefix=/usr && \
|
|
ninja && ninja install && rm -rf /deps/dav1d
|
|
#RUN git clone https://gitlab.freedesktop.org/wayland/wayland.git /deps/wayland
|
|
#RUN cd /deps/wayland && git checkout 1.24 && \
|
|
# meson setup build --prefix=/usr -Ddocumentation=false -Ddtd_validation=false && \
|
|
# ninja -C build install
|
|
#RUN git clone https://gitlab.freedesktop.org/wayland/wayland-protocols.git /deps/wayland-protocols
|
|
#RUN cd /deps/wayland-protocols && git checkout 1.45 && \
|
|
# meson setup build --prefix=/usr -Dtests=false && \
|
|
# ninja -C build install
|
|
RUN wget https://download.qt.io/official_releases/qt/6.9/6.9.1/single/qt-everywhere-src-6.9.1.tar.xz -O /tmp/qt.tar.xz && tar -xf /tmp/qt.tar.xz -C /deps && rm /tmp/qt.tar.xz && mkdir /deps/qt-build && cd /deps/qt-build && \
|
|
/deps/qt-everywhere-src-6.9.1/configure -opensource -confirm-license -nomake examples -nomake tests -release -prefix /usr -skip qtwayland -skip qtwebengine -skip qtwebview -skip qt3d -skip qtdeclarative -skip qtscript -skip qtserialport -skip qttools -skip qtquick3d -skip qtxmlpatterns -skip qtcanvas3d -skip qtgraphs -skip qtlocation -skip qtdoc -skip qtlottie -skip qt5compat -skip qtmqtt -skip qtopcua -skip qtquick3dphysics -skip qtquickeffectmaker -skip qtquicktimeline -skip qttranslations -skip qtvirtualkeyboard -skip qtactiveqt -skip qtshadertools -skip qtmultimedia -skip qtspeech -skip qtcoap -skip qtconnectivity -skip qtdatavis3d -skip qtcharts -skip qtgrpc -skip qtwebsockets -skip qthttpserver -skip qtlanguageserver -skip qtpositioning -skip qtnetworkauth -skip qtremoteobjects -skip qtscmxml -skip qtsensors -skip qtserialbus -skip qtwebchannel -skip qtscxml && \
|
|
cd /deps/qt-build && cmake --build . --parallel && cmake --install . && rm -rf /deps/qt-everywhere-src-6.9.1 /deps/qt-build
|
|
RUN git clone https://github.com/mpv-player/mpv-build.git /deps/mpv-build/ && cd /deps/mpv-build && echo "-Djavascript=disabled" > mpv_options \
|
|
&& echo "--disable-debug" > ffmpeg_options \
|
|
&& echo "--disable-doc" >> ffmpeg_options \
|
|
&& echo "--enable-encoder=png" >> ffmpeg_options \
|
|
&& echo "--enable-gnutls" >> ffmpeg_options \
|
|
&& echo "--enable-gpl" >> ffmpeg_options \
|
|
&& echo "--enable-version3" >> ffmpeg_options \
|
|
&& echo "--enable-libass" >> ffmpeg_options \
|
|
&& echo "--enable-libdav1d" >> ffmpeg_options \
|
|
&& echo "--enable-libfreetype" >> ffmpeg_options \
|
|
&& echo "--enable-libmp3lame" >> ffmpeg_options \
|
|
&& echo "--enable-libopus" >> ffmpeg_options \
|
|
&& echo "--enable-libtheora" >> ffmpeg_options \
|
|
&& echo "--enable-libvorbis" >> ffmpeg_options \
|
|
&& echo "--enable-libvpx" >> ffmpeg_options \
|
|
&& echo "--enable-libx264" >> ffmpeg_options \
|
|
&& echo "--enable-libx265" >> ffmpeg_options \
|
|
&& echo "--enable-libwebp" >> ffmpeg_options \
|
|
&& /deps/mpv-build/rebuild -j32 \
|
|
&& cp /deps/mpv-build/build_libs/bin/ffmpeg /usr/bin/ffmpeg \
|
|
&& cp /deps/mpv-build/mpv/build/libmpv.so.2.5.0 /usr/lib/libmpv.so.2.5.0 \
|
|
&& rm -rf /deps/mpv-build
|