From 3e772be7a6f3312958c0ea0de7eff7a45ece192b Mon Sep 17 00:00:00 2001
From: Bohdan Horbeshko <bodqhrohro@gmail.com>
Date: Tue, 9 Apr 2024 19:08:37 -0400
Subject: Add tdlib.Dockerfile

---
 .gitignore       |  1 +
 Makefile         |  3 +++
 tdlib.Dockerfile | 23 +++++++++++++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 tdlib.Dockerfile

diff --git a/.gitignore b/.gitignore
index b132b72..cf4df11 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ sessions/
 session.dat
 session.dat.new
 release/
+tdlib/
diff --git a/Makefile b/Makefile
index 69375be..87eee4c 100644
--- a/Makefile
+++ b/Makefile
@@ -20,3 +20,6 @@ build_indocker:
 
 build_indocker_staging:
 	DOCKER_BUILDKIT=1 docker build --build-arg "TD_COMMIT=${TD_COMMIT}" --build-arg "MAKEOPTS=${MAKEOPTS}" --network host --output=release --target binaries -f staging.Dockerfile .
+
+build_tdlib:
+	DOCKER_BUILDKIT=1 docker build --build-arg "TD_COMMIT=${TD_COMMIT}" --build-arg "MAKEOPTS=${MAKEOPTS}" --output=tdlib --target binaries -f tdlib.Dockerfile .
diff --git a/tdlib.Dockerfile b/tdlib.Dockerfile
new file mode 100644
index 0000000..5774405
--- /dev/null
+++ b/tdlib.Dockerfile
@@ -0,0 +1,23 @@
+FROM golang:1.19-bullseye AS base
+
+RUN apt-get update
+RUN apt-get install -y libssl-dev cmake build-essential gperf libz-dev make git php
+
+FROM base AS tdlib
+
+ARG TD_COMMIT
+ARG MAKEOPTS
+RUN git clone https://github.com/tdlib/td /src/
+RUN git -C /src/ checkout "${TD_COMMIT}"
+RUN mkdir build
+WORKDIR /build/
+RUN cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/compiled/ /src/
+RUN cmake --build . --target prepare_cross_compiling ${MAKEOPTS}
+WORKDIR /src/
+RUN php SplitSource.php
+WORKDIR /build/
+RUN cmake --build . ${MAKEOPTS}
+RUN make install
+
+FROM scratch AS binaries
+COPY --from=tdlib /compiled/ /
-- 
cgit v1.2.3