Version bump, use clang and native+LTO for most builds
This commit is contained in:
parent
260758de55
commit
99efe345d1
63
Dockerfile
63
Dockerfile
|
@ -1,6 +1,23 @@
|
|||
FROM debian:bullseye
|
||||
|
||||
ARG ZIMG_TAG=release-3.0.3
|
||||
COPY docker/x265-multilib.sh /x265-multilib.sh
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y ca-certificates gpg curl
|
||||
|
||||
COPY docker/clang.list /etc/apt/sources.list.d/clang.list
|
||||
|
||||
RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
|
||||
DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y \
|
||||
python3-pip python3-numpy python3-opencv python3-dev git nscd \
|
||||
autoconf automake libtool pkg-config meson cmake yasm nasm gcc g++ clang ccache \
|
||||
libnuma-dev libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libass-dev libfftw3-3 libfftw3-dev && \
|
||||
pip3 install Cython && \
|
||||
pip3 install git+https://github.com/FichteFoll/Sushi.git@master
|
||||
|
||||
|
||||
ARG ZIMG_TAG=release-3.0.4
|
||||
|
||||
ARG VS_TAG=R54
|
||||
|
||||
|
@ -10,25 +27,20 @@ ARG X264_REPO=https://code.videolan.org/videolan/x264.git
|
|||
ARG X265_TAG=3.5
|
||||
ARG X265_REPO=https://bitbucket.org/multicoreware/x265_git.git
|
||||
|
||||
ARG AOM_TAG=v3.2.0
|
||||
ARG AOM_TAG=v3.3.0
|
||||
ARG AOM_REPO=https://aomedia.googlesource.com/aom.git
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y \
|
||||
python3-pip python3-numpy python3-opencv python3-dev git nscd \
|
||||
autoconf automake libtool pkg-config meson cmake yasm nasm gcc g++ clang ccache curl \
|
||||
libnuma-dev libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libass-dev libfftw3-3 libfftw3-dev && \
|
||||
pip3 install Cython && \
|
||||
pip3 install git+https://github.com/FichteFoll/Sushi.git@master
|
||||
ARG SVT_TAG=v1.0.0
|
||||
ARG SVT_REPO=https://gitlab.com/AOMediaCodec/SVT-AV1.git
|
||||
|
||||
ARG MAGICK_TAG=7.1.0-31
|
||||
|
||||
COPY docker/x265-multilib.sh /x265-multilib.sh
|
||||
RUN git clone --branch "${X265_TAG}" --depth 1 "${X265_REPO}" /src/x265 && cd /src/x265 && \
|
||||
cd build/linux && \
|
||||
MAKEFLAGS=-j$(nproc) /x265-multilib.sh && \
|
||||
cp 8bit/x265 /usr/bin/x265 && \
|
||||
cd / && rm -r /src/x265 /x265-multilib.sh
|
||||
|
||||
ENV CC=clang
|
||||
ENV CXX=clang++
|
||||
ENV CFLAGS "-O3 -march=native -flto"
|
||||
ENV CPPFLAGS "$CFLAGS"
|
||||
ENV CXXFLAGS "-O3 -march=native -flto"
|
||||
ENV LDFLAGS "-flto"
|
||||
|
||||
RUN git clone --branch "master" --depth 1 https://github.com/l-smash/l-smash /src/l-smash && cd /src/l-smash && \
|
||||
CFLAGS="-fPIC" ./configure --enable-shared --prefix=/usr && \
|
||||
|
@ -37,7 +49,7 @@ RUN git clone --branch "master" --depth 1 https://github.com/l-smash/l-smash /sr
|
|||
cd / && rm -r /src/l-smash
|
||||
|
||||
RUN git clone --branch "${X264_TAG}" --depth 1 "${X264_REPO}" /src/x264 && cd /src/x264 && \
|
||||
./configure --enable-shared --enable-static --bit-depth=all --chroma-format=all --enable-lto --enable-pic --prefix=/usr && \
|
||||
CC=gcc CXX=g++ CFLAGS="-O3 -march=native" CPPFLAGS="-O3 -march=native" CXXFLAGS="-O3 -march=native" LDFLAGS="" ./configure --enable-shared --enable-static --bit-depth=all --chroma-format=all --enable-lto --enable-pic --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/x264
|
||||
|
@ -45,11 +57,24 @@ RUN git clone --branch "${X264_TAG}" --depth 1 "${X264_REPO}" /src/x264 && cd /s
|
|||
RUN git clone --branch "${AOM_TAG}" --depth 1 "${AOM_REPO}" /src/aom && cd /src/aom && \
|
||||
sed -i 's/MAX_NUM_THREADS 64/MAX_NUM_THREADS 128/' aom_util/aom_thread.h && \
|
||||
mkdir b && cd b && \
|
||||
cmake .. -DENABLE_CCACHE=ON -DCMAKE_BUILD_TYPE=Release -DCONFIG_AV1_ENCODER=1 -DENABLE_DOCS=OFF -DENABLE_EXAMPLES=ON -DBUILD_SHARED_LIBS=ON -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||
cmake .. -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DENABLE_CCACHE=ON -DCMAKE_BUILD_TYPE=Release -DCONFIG_AV1_ENCODER=1 -DENABLE_DOCS=OFF -DENABLE_EXAMPLES=ON -DBUILD_SHARED_LIBS=ON -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/aom
|
||||
|
||||
RUN git clone --branch "${SVT_TAG}" --depth 1 "${SVT_REPO}" /src/svt-av1 && cd /src/svt-av1 && \
|
||||
mkdir b && cd b && \
|
||||
cmake .. -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DSVT_AV1_LTO=ON -DNATIVE=ON -DENABLE_AVX512=ON -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/svt-av1
|
||||
|
||||
RUN git clone --branch "${X265_TAG}" --depth 1 "${X265_REPO}" /src/x265 && cd /src/x265 && \
|
||||
cd build/linux && \
|
||||
MAKEFLAGS=-j$(nproc) /x265-multilib.sh && \
|
||||
cp 8bit/x265 /usr/bin/x265 && \
|
||||
cd / && rm -r /src/x265 /x265-multilib.sh
|
||||
|
||||
RUN git clone --branch "${ZIMG_TAG}" --depth 1 https://github.com/sekrit-twc/zimg.git /src/zimg && cd /src/zimg && \
|
||||
./autogen.sh && \
|
||||
./configure --enable-example --enable-simd --enable-shared --enable-static --prefix=/usr && \
|
||||
|
@ -65,7 +90,7 @@ RUN curl "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-$(dpkg --print-arch
|
|||
cp ./qt-faststart /usr/bin/ && \
|
||||
cd / && rm -r /src/ffmpeg*
|
||||
|
||||
RUN git clone --branch "7.1.0-16" --depth 1 https://github.com/ImageMagick/ImageMagick /src/imagemagick && cd /src/imagemagick && \
|
||||
RUN git clone --branch "${MAGICK_TAG}" --depth 1 https://github.com/ImageMagick/ImageMagick /src/imagemagick && cd /src/imagemagick && \
|
||||
./configure --with-magick-plus-plus --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
|
|
2
docker/clang.list
Normal file
2
docker/clang.list
Normal file
|
@ -0,0 +1,2 @@
|
|||
deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main
|
||||
deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main
|
Loading…
Reference in a new issue