From 6ff2c0876433723eccbae3aa5e0046c97beb4b91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Novomesk=C3=BD?= Date: Sun, 18 Dec 2022 08:00:24 +0100 Subject: [PATCH] Added dependencies for Windows build They will be used for plugins in kimageformats: dav1d, libavif are needed for AVIF plugin libde265, libheif are needed for HEIF plugin libjxl is needed for JXL plugin dav1d could be used by ffmpeg to provide AV1 decoding meson is required to build dav1d --- Telegram/build/prepare/prepare.py | 129 +++++++++++++++++++++++++++++- 1 file changed, 128 insertions(+), 1 deletion(-) diff --git a/Telegram/build/prepare/prepare.py b/Telegram/build/prepare/prepare.py index 7161e569d..50baf8eca 100644 --- a/Telegram/build/prepare/prepare.py +++ b/Telegram/build/prepare/prepare.py @@ -423,7 +423,7 @@ version: """ + (subprocess.run(['python', '-V'], capture_output=True, env=modifi win: python -m venv python python\\Scripts\\activate.bat - pip install pywin32 six + pip install pywin32 six meson deactivate """, 'ThirdParty') @@ -664,6 +664,133 @@ mac: make install """) +stage('dav1d', """ +win: + git clone -b 1.0.0 --depth 1 https://code.videolan.org/videolan/dav1d.git + cd dav1d +depends:python/Scripts/activate.bat + %THIRDPARTY_DIR%\\python\\Scripts\\activate.bat + meson setup --prefix %LIBS_DIR%/local --default-library=static --buildtype=debug -Denable_tools=false -Denable_tests=false -Db_vscrt=mtd builddir-debug + meson compile -C builddir-debug + meson install -C builddir-debug +release: + meson setup --prefix %LIBS_DIR%/local --default-library=static --buildtype=release -Denable_tools=false -Denable_tests=false -Db_vscrt=mt builddir-release + meson compile -C builddir-release + meson install -C builddir-release +win: + copy %LIBS_DIR%\\local\\lib\\libdav1d.a %LIBS_DIR%\\local\\lib\\dav1d.lib + deactivate +""") + +stage('libavif', """ +win: + git clone -b v0.11.1 --depth 1 https://github.com/AOMediaCodec/libavif.git + cd libavif + cmake . ^ + -A %WIN32X64% ^ + -DCMAKE_INSTALL_PREFIX=%LIBS_DIR%/local ^ + -DCMAKE_C_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" ^ + -DCMAKE_C_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG" ^ + -DBUILD_SHARED_LIBS=OFF ^ + -DAVIF_ENABLE_WERROR=OFF ^ + -DAVIF_CODEC_DAV1D=ON + cmake --build . --config Debug + cmake --install . --config Debug +release: + cmake --build . --config Release + cmake --install . --config Release +""") + +stage('libde265', """ +win: + git clone https://github.com/strukturag/libde265.git + cd libde265 + git checkout c96962cf6a0259f1678e9a0e1566eb9b5516093a + cmake . ^ + -A %WIN32X64% ^ + -DCMAKE_INSTALL_PREFIX=%LIBS_DIR%/local ^ + -DCMAKE_C_FLAGS="/DLIBDE265_STATIC_BUILD" ^ + -DCMAKE_CXX_FLAGS="/DLIBDE265_STATIC_BUILD" ^ + -DCMAKE_C_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" ^ + -DCMAKE_CXX_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" ^ + -DCMAKE_C_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG" ^ + -DCMAKE_CXX_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG" ^ + -DENABLE_SDL=OFF ^ + -DBUILD_SHARED_LIBS=OFF ^ + -DENABLE_DECODER=OFF ^ + -DENABLE_ENCODER=OFF + cmake --build . --config Debug + cmake --install . --config Debug +release: + cmake --build . --config Release + cmake --install . --config Release +""") + +stage('libheif', """ +win: + git clone --depth 1 -b v1.14.0 https://github.com/strukturag/libheif.git + cd libheif + %THIRDPARTY_DIR%\\msys64\\usr\\bin\\sed.exe -i 's/LIBHEIF_EXPORTS/LIBDE265_STATIC_BUILD/g' libheif/CMakeLists.txt + %THIRDPARTY_DIR%\\msys64\\usr\\bin\\sed.exe -i 's/HAVE_VISIBILITY/LIBHEIF_STATIC_BUILD/g' libheif/CMakeLists.txt + cmake . ^ + -A %WIN32X64% ^ + -DCMAKE_INSTALL_PREFIX=%LIBS_DIR%/local ^ + -DCMAKE_C_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" ^ + -DCMAKE_CXX_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" ^ + -DCMAKE_C_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG" ^ + -DCMAKE_CXX_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG" ^ + -DBUILD_SHARED_LIBS=OFF ^ + -DENABLE_PLUGIN_LOADING=OFF ^ + -DWITH_LIBDE265=ON ^ + -DWITH_SvtEnc=OFF ^ + -DWITH_RAV1E=OFF ^ + -DWITH_EXAMPLES=OFF + cmake --build . --config Debug + cmake --install . --config Debug +release: + cmake --build . --config Release + cmake --install . --config Release +""") + +stage('libjxl', """ +win: + git clone -b v0.7.0 --depth 1 --recursive --shallow-submodules https://github.com/libjxl/libjxl.git + cd libjxl + cmake . ^ + -A %WIN32X64% ^ + -DCMAKE_INSTALL_PREFIX=%LIBS_DIR%/local ^ + -DCMAKE_C_FLAGS="/DJXL_STATIC_DEFINE /DJXL_THREADS_STATIC_DEFINE" ^ + -DCMAKE_CXX_FLAGS="/DJXL_STATIC_DEFINE /DJXL_THREADS_STATIC_DEFINE" ^ + -DCMAKE_C_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" ^ + -DCMAKE_CXX_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" ^ + -DCMAKE_C_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG" ^ + -DCMAKE_CXX_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG" ^ + -DBUILD_SHARED_LIBS=OFF ^ + -DBUILD_TESTING=OFF ^ + -DJPEGXL_ENABLE_FUZZERS=OFF ^ + -DJPEGXL_ENABLE_DEVTOOLS=OFF ^ + -DJPEGXL_ENABLE_TOOLS=OFF ^ + -DJPEGXL_ENABLE_DOXYGEN=OFF ^ + -DJPEGXL_ENABLE_MANPAGES=OFF ^ + -DJPEGXL_ENABLE_EXAMPLES=OFF ^ + -DJPEGXL_ENABLE_JNI=OFF ^ + -DJPEGXL_ENABLE_SJPEG=OFF ^ + -DJPEGXL_ENABLE_OPENEXR=OFF ^ + -DJPEGXL_ENABLE_SKCMS=ON ^ + -DJPEGXL_BUNDLE_SKCMS=ON ^ + -DJPEGXL_ENABLE_VIEWERS=OFF ^ + -DJPEGXL_ENABLE_TCMALLOC=OFF ^ + -DJPEGXL_ENABLE_PLUGINS=OFF ^ + -DJPEGXL_ENABLE_COVERAGE=OFF ^ + -DJPEGXL_ENABLE_PROFILER=OFF ^ + -DJPEGXL_WARNINGS_AS_ERRORS=OFF + cmake --build . --config Debug + cmake --install . --config Debug +release: + cmake --build . --config Release + cmake --install . --config Release +""") + stage('libvpx', """ git clone https://github.com/webmproject/libvpx.git depends:patches/libvpx/*.patch