Skip to content

Commit ae45189

Browse files
ilya-fedinjohn-preston
authored andcommitted
Set cmake generator, build type and parallel level globally in Dockerfile
1 parent ff8292b commit ae45189

4 files changed

Lines changed: 42 additions & 51 deletions

File tree

.github/workflows/linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ jobs:
104104
docker run --rm \
105105
-u $(id -u) \
106106
-v $PWD:/usr/src/tdesktop \
107-
-e CONFIG=Debug \
107+
-e CMAKE_CONFIG_TYPE=Debug \
108108
$IMAGE_TAG \
109109
/usr/src/tdesktop/Telegram/build/docker/centos_env/build.sh \
110110
-D CMAKE_CONFIGURATION_TYPES=Debug \

Telegram/build/docker/centos_env/Dockerfile

Lines changed: 39 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ ENV NM gcc-nm
4242
ENV CFLAGS {% if DEBUG %}-g{% endif %} -O3 {% if LTO %}-flto=auto -ffat-lto-objects{% endif %} -pipe -fPIC -fno-strict-aliasing -fexceptions -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -fcf-protection -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS
4343
ENV CXXFLAGS $CFLAGS
4444

45+
ENV CMAKE_GENERATOR Ninja
46+
ENV CMAKE_BUILD_TYPE None
47+
ENV CMAKE_CONFIG_TYPE Release
48+
ENV CMAKE_BUILD_PARALLEL_LEVEL ''
49+
4550
FROM builder AS patches
4651
RUN git init patches \
4752
&& cd patches \
@@ -53,33 +58,30 @@ RUN git init patches \
5358
FROM builder AS zlib
5459
RUN git clone -b v1.3.1 --depth=1 {{ GIT }}/madler/zlib.git \
5560
&& cd zlib \
56-
&& cmake -GNinja -B build . \
57-
-DCMAKE_BUILD_TYPE=None \
58-
-DZLIB_BUILD_EXAMPLES=OFF \
59-
&& cmake --build build --parallel \
61+
&& cmake -B build . -DZLIB_BUILD_EXAMPLES=OFF \
62+
&& cmake --build build \
6063
&& DESTDIR="{{ LibrariesPath }}/zlib-cache" cmake --install build \
6164
&& cd .. \
6265
&& rm -rf zlib
6366

6467
FROM builder AS xz
6568
RUN git clone -b v5.8.1 --depth=1 {{ GIT }}/tukaani-project/xz.git \
6669
&& cd xz \
67-
&& cmake -GNinja -B build . -DCMAKE_BUILD_TYPE=None \
68-
&& cmake --build build --parallel \
70+
&& cmake -B build . \
71+
&& cmake --build build \
6972
&& DESTDIR="{{ LibrariesPath }}/xz-cache" cmake --install build \
7073
&& cd .. \
7174
&& rm -rf xz
7275

7376
FROM builder AS protobuf
7477
RUN git clone -b v30.2 --depth=1 --recursive --shallow-submodules {{ GIT }}/protocolbuffers/protobuf.git \
7578
&& cd protobuf \
76-
&& cmake -GNinja -B build . \
77-
-DCMAKE_BUILD_TYPE=None \
79+
&& cmake -B build . \
7880
-Dprotobuf_BUILD_TESTS=OFF \
7981
-Dprotobuf_BUILD_PROTOBUF_BINARIES=ON \
8082
-Dprotobuf_BUILD_LIBPROTOC=ON \
8183
-Dprotobuf_WITH_ZLIB=OFF \
82-
&& cmake --build build --parallel \
84+
&& cmake --build build \
8385
&& DESTDIR="{{ LibrariesPath }}/protobuf-cache" cmake --install build \
8486
&& cd .. \
8587
&& rm -rf protobuf
@@ -98,33 +100,31 @@ RUN git clone -b lcms2.15 --depth=1 {{ GIT }}/mm2/Little-CMS.git \
98100
FROM builder AS brotli
99101
RUN git clone -b v1.1.0 --depth=1 {{ GIT }}/google/brotli.git \
100102
&& cd brotli \
101-
&& cmake -GNinja -B build . \
102-
-DCMAKE_BUILD_TYPE=None \
103+
&& cmake -B build . \
103104
-DBUILD_SHARED_LIBS=OFF \
104105
-DBROTLI_DISABLE_TESTS=ON \
105-
&& cmake --build build --parallel \
106+
&& cmake --build build \
106107
&& DESTDIR="{{ LibrariesPath }}/brotli-cache" cmake --install build \
107108
&& cd .. \
108109
&& rm -rf brotli
109110

110111
FROM builder AS highway
111112
RUN git clone -b 1.0.7 --depth=1 {{ GIT }}/google/highway.git \
112113
&& cd highway \
113-
&& cmake -GNinja -B build . \
114-
-DCMAKE_BUILD_TYPE=None \
114+
&& cmake -B build . \
115115
-DBUILD_TESTING=OFF \
116116
-DHWY_ENABLE_CONTRIB=OFF \
117117
-DHWY_ENABLE_EXAMPLES=OFF \
118-
&& cmake --build build --parallel \
118+
&& cmake --build build \
119119
&& DESTDIR="{{ LibrariesPath }}/highway-cache" cmake --install build \
120120
&& cd .. \
121121
&& rm -rf highway
122122

123123
FROM builder AS opus
124124
RUN git clone -b v1.5.2 --depth=1 {{ GIT }}/xiph/opus.git \
125125
&& cd opus \
126-
&& cmake -GNinja -B build . -DCMAKE_BUILD_TYPE=None \
127-
&& cmake --build build --parallel \
126+
&& cmake -B build . \
127+
&& cmake --build build \
128128
&& DESTDIR="{{ LibrariesPath }}/opus-cache" cmake --install build \
129129
&& cd .. \
130130
&& rm -rf opus
@@ -156,12 +156,12 @@ RUN git clone -b v2.4.1 --depth=1 {{ GIT }}/cisco/openh264.git \
156156
FROM builder AS libde265
157157
RUN git clone -b v1.0.15 --depth=1 {{ GIT }}/strukturag/libde265.git \
158158
&& cd libde265 \
159-
&& cmake -GNinja -B build . \
159+
&& cmake -B build . \
160160
-DCMAKE_BUILD_TYPE=None \
161161
-DBUILD_SHARED_LIBS=OFF \
162162
-DENABLE_DECODER=OFF \
163163
-DENABLE_SDL=OFF \
164-
&& cmake --build build --parallel \
164+
&& cmake --build build \
165165
&& DESTDIR="{{ LibrariesPath }}/libde265-cache" cmake --install build \
166166
&& cd .. \
167167
&& rm -rf libde265
@@ -189,8 +189,7 @@ RUN git init libvpx \
189189
FROM builder AS libwebp
190190
RUN git clone -b chrome-m116-5845 --depth=1 {{ GIT }}/webmproject/libwebp.git \
191191
&& cd libwebp \
192-
&& cmake -GNinja -B build . \
193-
-DCMAKE_BUILD_TYPE=None \
192+
&& cmake -B build . \
194193
-DWEBP_BUILD_ANIM_UTILS=OFF \
195194
-DWEBP_BUILD_CWEBP=OFF \
196195
-DWEBP_BUILD_DWEBP=OFF \
@@ -200,7 +199,7 @@ RUN git clone -b chrome-m116-5845 --depth=1 {{ GIT }}/webmproject/libwebp.git \
200199
-DWEBP_BUILD_WEBPMUX=OFF \
201200
-DWEBP_BUILD_WEBPINFO=OFF \
202201
-DWEBP_BUILD_EXTRAS=OFF \
203-
&& cmake --build build --parallel \
202+
&& cmake --build build \
204203
&& DESTDIR="{{ LibrariesPath }}/libwebp-cache" cmake --install build \
205204
&& cd .. \
206205
&& rm -rf libwebp
@@ -210,11 +209,10 @@ COPY --link --from=dav1d {{ LibrariesPath }}/dav1d-cache /
210209

211210
RUN git clone -b v1.0.4 --depth=1 {{ GIT }}/AOMediaCodec/libavif.git \
212211
&& cd libavif \
213-
&& cmake -GNinja -B build . \
214-
-DCMAKE_BUILD_TYPE=None \
212+
&& cmake -B build . \
215213
-DBUILD_SHARED_LIBS=OFF \
216214
-DAVIF_CODEC_DAV1D=ON \
217-
&& cmake --build build --parallel \
215+
&& cmake --build build \
218216
&& DESTDIR="{{ LibrariesPath }}/libavif-cache" cmake --install build \
219217
&& cd .. \
220218
&& rm -rf libavif
@@ -224,8 +222,7 @@ COPY --link --from=libde265 {{ LibrariesPath }}/libde265-cache /
224222

225223
RUN git clone -b v1.18.2 --depth=1 {{ GIT }}/strukturag/libheif.git \
226224
&& cd libheif \
227-
&& cmake -GNinja -B build . \
228-
-DCMAKE_BUILD_TYPE=None \
225+
&& cmake -B build . \
229226
-DBUILD_SHARED_LIBS=OFF \
230227
-DBUILD_TESTING=OFF \
231228
-DENABLE_PLUGIN_LOADING=OFF \
@@ -238,7 +235,7 @@ RUN git clone -b v1.18.2 --depth=1 {{ GIT }}/strukturag/libheif.git \
238235
-DWITH_SvtEnc_PLUGIN=OFF \
239236
-DWITH_DAV1D=OFF \
240237
-DWITH_EXAMPLES=OFF \
241-
&& cmake --build build --parallel \
238+
&& cmake --build build \
242239
&& DESTDIR="{{ LibrariesPath }}/libheif-cache" cmake --install build \
243240
&& cd .. \
244241
&& rm -rf libheif
@@ -251,8 +248,7 @@ COPY --link --from=highway {{ LibrariesPath }}/highway-cache /
251248
RUN git clone -b v0.11.1 --depth=1 {{ GIT }}/libjxl/libjxl.git \
252249
&& cd libjxl \
253250
&& git submodule update --init --recursive --depth=1 third_party/libjpeg-turbo \
254-
&& cmake -GNinja -B build . \
255-
-DCMAKE_BUILD_TYPE=None \
251+
&& cmake -B build . \
256252
-DBUILD_SHARED_LIBS=OFF \
257253
-DBUILD_TESTING=OFF \
258254
-DJPEGXL_ENABLE_DEVTOOLS=OFF \
@@ -266,7 +262,7 @@ RUN git clone -b v0.11.1 --depth=1 {{ GIT }}/libjxl/libjxl.git \
266262
-DJPEGXL_ENABLE_SJPEG=OFF \
267263
-DJPEGXL_ENABLE_OPENEXR=OFF \
268264
-DJPEGXL_ENABLE_SKCMS=OFF \
269-
&& cmake --build build --parallel \
265+
&& cmake --build build \
270266
&& export DESTDIR="{{ LibrariesPath }}/libjxl-cache" \
271267
&& cmake --install build \
272268
&& cp build/lib/libjpegli-static.a $DESTDIR/usr/local/lib64/libjpeg.a \
@@ -277,8 +273,8 @@ RUN git clone -b v0.11.1 --depth=1 {{ GIT }}/libjxl/libjxl.git \
277273
FROM builder AS rnnoise
278274
RUN git clone -b master --depth=1 {{ GIT }}/desktop-app/rnnoise.git \
279275
&& cd rnnoise \
280-
&& cmake -GNinja -B build . -DCMAKE_BUILD_TYPE=None \
281-
&& cmake --build build --parallel \
276+
&& cmake -B build . \
277+
&& cmake --build build \
282278
&& DESTDIR="{{ LibrariesPath }}/rnnoise-cache" cmake --install build \
283279
&& cd .. \
284280
&& rm -rf rnnoise
@@ -636,13 +632,12 @@ COPY --link --from=pipewire {{ LibrariesPath }}/pipewire-cache /
636632

637633
RUN git clone -b 1.24.1 --depth=1 {{ GIT }}/kcat/openal-soft.git \
638634
&& cd openal-soft \
639-
&& cmake -GNinja -B build . \
640-
-DCMAKE_BUILD_TYPE=None \
635+
&& cmake -B build . \
641636
-DLIBTYPE:STRING=STATIC \
642637
-DALSOFT_EXAMPLES=OFF \
643638
-DALSOFT_UTILS=OFF \
644639
-DALSOFT_INSTALL_CONFIG=OFF \
645-
&& cmake --build build --parallel \
640+
&& cmake --build build \
646641
&& DESTDIR="{{ LibrariesPath }}/openal-cache" cmake --install build \
647642
&& cd .. \
648643
&& rm -rf openal-soft
@@ -726,8 +721,7 @@ RUN git clone -b {{ QT_TAG }} --depth=1 {{ GIT }}/qt/qt5.git \
726721
&& cd ../qtwayland \
727722
&& find ../../patches/qtwayland_{{ QT }} -type f -print0 | sort -z | xargs -r0 git apply \
728723
&& cd .. \
729-
&& cmake -GNinja -B build . \
730-
-DCMAKE_BUILD_TYPE=None \
724+
&& cmake -B build . \
731725
-DBUILD_SHARED_LIBS=OFF \
732726
-DQT_GENERATE_SBOM=OFF \
733727
-DINPUT_libpng=qt \
@@ -737,7 +731,7 @@ RUN git clone -b {{ QT_TAG }} --depth=1 {{ GIT }}/qt/qt5.git \
737731
-DFEATURE_xcb_sm=OFF \
738732
-DINPUT_dbus=runtime \
739733
-DINPUT_openssl=linked \
740-
&& cmake --build build --parallel \
734+
&& cmake --build build \
741735
&& DESTDIR="{{ LibrariesPath }}/qt-cache" cmake --install build \
742736
&& cd .. \
743737
&& rm -rf qt5
@@ -786,25 +780,24 @@ RUN git init tg_owt \
786780
WORKDIR tg_owt
787781

788782
FROM webrtc AS webrtc_release
789-
RUN cmake --build out --config Release --parallel \
783+
RUN cmake --build out --config Release \
790784
&& find out -mindepth 1 -maxdepth 1 ! -name Release -exec rm -rf {} \;
791785

792786
{%- if DEBUG %}
793787

794788
FROM webrtc AS webrtc_debug
795-
RUN cmake --build out --config Debug --parallel \
789+
RUN cmake --build out --config Debug \
796790
&& find out -mindepth 1 -maxdepth 1 ! -name Debug -exec rm -rf {} \;
797791
{%- endif %}
798792

799793
FROM builder AS ada
800794
RUN git clone -b v3.2.2 --depth=1 {{ GIT }}/ada-url/ada.git \
801795
&& cd ada \
802-
&& cmake -GNinja -B build . \
803-
-D CMAKE_BUILD_TYPE=None \
796+
&& cmake -B build . \
804797
-D ADA_TESTING=OFF \
805798
-D ADA_TOOLS=OFF \
806799
-D ADA_INCLUDE_URL_PATTERN=OFF \
807-
&& cmake --build build --parallel \
800+
&& cmake --build build \
808801
&& DESTDIR="{{ LibrariesPath }}/ada-cache" cmake --install build \
809802
&& cd .. \
810803
&& rm -rf ada
@@ -819,10 +812,8 @@ RUN git init tde2e \
819812
&& git remote add origin {{ GIT }}/tdlib/td.git \
820813
&& git fetch --depth=1 origin 51743dfd01dff6179e2d8f7095729caa4e2222e9 \
821814
&& git reset --hard FETCH_HEAD \
822-
&& cmake -GNinja -B build . \
823-
-DCMAKE_BUILD_TYPE=NONE \
824-
-DTD_E2E_ONLY=ON \
825-
&& cmake --build build --parallel \
815+
&& cmake -B build . -DTD_E2E_ONLY=ON \
816+
&& cmake --build build \
826817
&& DESTDIR="{{ LibrariesPath }}/tde2e-cache" cmake --install build \
827818
&& cd .. \
828819
&& rm -rf tde2e

Telegram/build/docker/centos_env/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ set -e
33

44
cd Telegram
55
./configure.sh "$@"
6-
cmake --build ../out --config "${CONFIG:-Release}" --parallel
6+
cmake --build ../out

docs/building-linux.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Or, to create a debug build, run (also using [your **api_id** and **api_hash**](
3232
docker run --rm -it \
3333
-u $(id -u) \
3434
-v "$PWD:/usr/src/tdesktop" \
35-
-e CONFIG=Debug \
35+
-e CMAKE_CONFIG_TYPE=Debug \
3636
tdesktop:centos_env \
3737
/usr/src/tdesktop/Telegram/build/docker/centos_env/build.sh \
3838
-D TDESKTOP_API_ID=YOUR_API_ID \

0 commit comments

Comments
 (0)