Add TDLib build phases for tde2e part.

This commit is contained in:
John Preston 2025-04-12 11:29:30 +04:00
parent b583240d58
commit 2c048376d4
2 changed files with 107 additions and 0 deletions

View file

@ -811,6 +811,38 @@ RUN git clone -b v3.2.2 --depth=1 {{ GIT }}/ada-url/ada.git \
&& cd .. \ && cd .. \
&& rm -rf ada && rm -rf ada
FROM builder AS tdlib
COPY --link --from=openssl {{ LibrariesPath }}/openssl-cache /
# Shallow clone on a specific commit.
RUN git init td \
&& cd td \
&& git remote add origin {{ GIT }}/tdlib/td.git \
&& git fetch --depth=1 origin a03a90470d6fca9a5a3db747ba3f3e4a465b5fe7 \
&& git reset --hard FETCH_HEAD \
&& rm -rf .git \
&& env -u CFLAGS -u CXXFLAGS cmake -B out/Release . \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \
-DCMAKE_C_FLAGS_DEBUG="{{ CFLAGS_DEBUG }}" \
-DCMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \
-DCMAKE_CXX_FLAGS_DEBUG="{{ CFLAGS_DEBUG }}" \
&& cmake --build out/Release --config Release --target tde2e -j$(nproc)
WORKDIR td
{%- if DEBUG %}
FROM tdlib AS tdlib_debug
RUN env -u CFLAGS -u CXXFLAGS cmake -B out/Debug . \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \
-DCMAKE_C_FLAGS_DEBUG="{{ CFLAGS_DEBUG }}" \
-DCMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \
-DCMAKE_CXX_FLAGS_DEBUG="{{ CFLAGS_DEBUG }}" \
&& cmake --build out/Debug --config Debug --target tde2e -j$(nproc)
{%- endif %}
FROM builder FROM builder
COPY --link --from=zlib {{ LibrariesPath }}/zlib-cache / COPY --link --from=zlib {{ LibrariesPath }}/zlib-cache /
COPY --link --from=xz {{ LibrariesPath }}/xz-cache / COPY --link --from=xz {{ LibrariesPath }}/xz-cache /
@ -860,6 +892,11 @@ COPY --link --from=ada {{ LibrariesPath }}/ada-cache /
COPY --link --from=webrtc_debug {{ LibrariesPath }}/tg_owt/out/Debug tg_owt/out/Debug COPY --link --from=webrtc_debug {{ LibrariesPath }}/tg_owt/out/Debug tg_owt/out/Debug
{%- endif %} {%- endif %}
COPY --link --from=tdlib {{ LibrariesPath }}/td td
{%- if DEBUG %}
COPY --link --from=tdlib_debug {{ LibrariesPath }}/td/out/Debug td/out/Debug
{%- endif %}
WORKDIR ../tdesktop WORKDIR ../tdesktop
ENV QT {{ QT }} ENV QT {{ QT }}
ENV BOOST_INCLUDEDIR /usr/include/boost1.78 ENV BOOST_INCLUDEDIR /usr/include/boost1.78

View file

@ -1925,6 +1925,76 @@ win:
# -Dprotobuf_WITH_ZLIB_DEFAULT=OFF # -Dprotobuf_WITH_ZLIB_DEFAULT=OFF
# cmake --build . $MAKE_THREADS_CNT # cmake --build . $MAKE_THREADS_CNT
stage('td', """
git clone https://github.com/tdlib/td.git
cd td
git checkout a03a90470d
win:
SET OPENSSL_DIR=%LIBS_DIR%\\openssl3
SET OPENSSL_LIBS_DIR=%OPENSSL_DIR%\\out
SET ZLIB_LIBS_DIR=%LIBS_DIR%\\zlib
mkdir out
cd out
mkdir Debug
cd Debug
cmake -A %WIN32X64% ^
-DOPENSSL_FOUND=1 ^
-DOPENSSL_INCLUDE_DIR=%OPENSSL_DIR%\\include ^
-DOPENSSL_CRYPTO_LIBRARY="%OPENSSL_LIBS_DIR%.dbg\\libcrypto.lib" ^
-DGPERF_EXECUTABLE=%ROOT_DIR%\\ThirdParty\\gperf\\bin\\gperf ^
-DZLIB_FOUND=1 ^
-DZLIB_INCLUDE_DIR=%ZLIB_LIBS_DIR% ^
-DZLIB_LIBRARIES="%ZLIB_LIBS_DIR%\\Debug\\zlibstaticd.lib" ^
-DCMAKE_CXX_FLAGS_DEBUG="/DZLIB_WINAPI /DNDEBUG /MTd /Zi /Od /Ob0" ^
-DCMAKE_C_FLAGS_DEBUG="/DNDEBUG /MTd /Zi /Od /Ob0" ^
-DCMAKE_EXE_LINKER_FLAGS="/SAFESEH:NO Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib %OPENSSL_LIBS_DIR%.dbg\\libssl.lib" ^
-DCMAKE_SHARED_LINKER_FLAGS="/SAFESEH:NO Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib %OPENSSL_LIBS_DIR%.dbg\\libssl.lib" ^
-DTD_ENABLE_MULTI_PROCESSOR_COMPILATION=ON ^
../..
cmake --build . --config Debug --target tde2e
release:
cd ..
mkdir Release
cd Release
cmake -A %WIN32X64% ^
-DOPENSSL_FOUND=1 ^
-DOPENSSL_INCLUDE_DIR=%OPENSSL_DIR%\\include ^
-DOPENSSL_CRYPTO_LIBRARY="%OPENSSL_LIBS_DIR%\\libcrypto.lib" ^
-DGPERF_EXECUTABLE=%ROOT_DIR%\\ThirdParty\\gperf\\bin\\gperf ^
-DZLIB_FOUND=1 ^
-DZLIB_INCLUDE_DIR=%ZLIB_LIBS_DIR% ^
-DZLIB_LIBRARIES="%ZLIB_LIBS_DIR%\\Release\\zlibstatic.lib" ^
-DCMAKE_CXX_FLAGS_RELEASE="/DZLIB_WINAPI /MT /Ob2" ^
-DCMAKE_C_FLAGS_RELEASE="/MT /Ob2" ^
-DCMAKE_EXE_LINKER_FLAGS="/SAFESEH:NO Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib %OPENSSL_LIBS_DIR%\\libssl.lib" ^
-DCMAKE_SHARED_LINKER_FLAGS="/SAFESEH:NO Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib %OPENSSL_LIBS_DIR%\\libssl.lib" ^
-DTD_ENABLE_MULTI_PROCESSOR_COMPILATION=ON ^
../..
cmake --build . --config Release --target tde2e
mac:
buildTd() {
BUILD_CONFIG=$1
mkdir -p out/$BUILD_CONFIG
cd out/$BUILD_CONFIG
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=$BUILD_CONFIG \
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
-DOPENSSL_FOUND=1 \
-DOPENSSL_INCLUDE_DIR=$LIBS_DIR/openssl3/include \
-DOPENSSL_SSL_LIBRARY=$LIBS_DIR/openssl3/libssl.a \
-DOPENSSL_CRYPTO_LIBRARY=$LIBS_DIR/openssl3/libcrypto.a \
-DZLIB_FOUND=1 \
-DZLIB_LIBRARIES=$USED_PREFIX/lib/libz.a \
../..
cmake --build . --config $BUILD_CONFIG --target tde2e $MAKE_THREADS_CNT
cd ../..
}
buildTd Debug
release:
buildTd Release
""")
if win: if win:
currentCodePage = subprocess.run('chcp', capture_output=True, shell=True, text=True, env=modifiedEnv).stdout.strip().split()[-1] currentCodePage = subprocess.run('chcp', capture_output=True, shell=True, text=True, env=modifiedEnv).stdout.strip().split()[-1]
subprocess.run('chcp 65001 > nul', shell=True, env=modifiedEnv) subprocess.run('chcp 65001 > nul', shell=True, env=modifiedEnv)