3131 CMAKE_VER : " 3.16.3"
3232 UPLOAD_ARTIFACT : " false"
3333 ONLY_CACHE : " false"
34- MANUAL_CACHING : " 4 "
34+ MANUAL_CACHING : " 6 "
3535 DOC_PATH : " docs/building-cmake.md"
36+ AUTO_CACHING : " 1"
3637
3738 steps :
3839 - name : Get repository name.
4344 with :
4445 submodules : recursive
4546
47+ - name : Disable man for further package installs.
48+ run : |
49+ cfgFile="/etc/dpkg/dpkg.cfg.d/no_man"
50+ sudo touch $cfgFile
51+ p() {
52+ sudo echo "path-exclude=/usr/share/$1/*" >> $cfgFile
53+ }
54+
55+ p man
56+ p locale
57+ p doc
58+
4659 - name : First set up.
60+ shell : bash
4761 run : |
4862 cd ..
4963 mv $REPO_NAME temp
@@ -55,13 +69,13 @@ jobs:
5569 sudo apt-get install software-properties-common -y && \
5670 sudo apt-get install git libexif-dev liblzma-dev libz-dev libssl-dev \
5771 libgtk2.0-dev libice-dev libsm-dev libicu-dev libdrm-dev dh-autoreconf \
58- autoconf automake build-essential libass-dev libfreetype6-dev \
72+ autoconf automake build-essential libxml2-dev libass-dev libfreetype6-dev \
5973 libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \
60- libvorbis-dev libenchant-dev libxcb1-dev libxcb-image0-dev libxcb-shm0-dev \
74+ libvorbis-dev libxcb1-dev libxcb-image0-dev libxcb-shm0-dev \
6175 libxcb-xfixes0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libatspi2.0-dev \
6276 libxcb-render-util0-dev libxcb-util0-dev libxcb-xkb-dev libxrender-dev \
63- libasound-dev libpulse-dev libxcb-sync0-dev libxcb-randr0-dev bison \
64- libx11-xcb-dev libffi-dev libncurses5-dev pkg-config texi2html yasm \
77+ libasound-dev libpulse-dev libxcb-sync0-dev libxcb-randr0-dev libegl1-mesa-dev \
78+ libx11-xcb-dev libffi-dev libncurses5-dev pkg-config texi2html bison yasm \
6579 zlib1g-dev xutils-dev python-xcbgen chrpath gperf wget -y --force-yes && \
6680 sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
6781 sudo apt-get update && \
7589
7690 gcc --version > CACHE_KEY.txt
7791 echo $MANUAL_CACHING >> CACHE_KEY.txt
92+ if [ "$AUTO_CACHING" == "1" ]; then
93+ thisFile=$REPO_NAME/.github/workflows/linux.yml
94+ echo `md5sum $thisFile | cut -c -32` >> CACHE_KEY.txt
95+ fi
7896 md5cache=$(md5sum CACHE_KEY.txt | cut -c -32)
7997 echo ::set-env name=CACHE_KEY::$md5cache
8098
@@ -122,9 +140,8 @@ jobs:
122140 run : |
123141 cd $LibrariesPath
124142
125- git clone $GIT/xiph/opus
143+ git clone -b v1.3 --depth=1 $GIT/xiph/opus
126144 cd opus
127- git checkout v1.3
128145 ./autogen.sh
129146 ./configure
130147 make -j$(nproc)
@@ -142,16 +159,20 @@ jobs:
142159 ./autogen.sh --enable-static
143160 make -j$(nproc)
144161 sudo make install
162+ cd ..
163+ rm -rf libva
145164
146165 - name : Libvdpau.
147166 run : |
148167 cd $LibrariesPath
149168
150- git clone https://gitlab.freedesktop.org/vdpau/libvdpau.git --depth=1 -b libvdpau-1.2
169+ git clone -b libvdpau-1.2 --depth=1 https://gitlab.freedesktop.org/vdpau/libvdpau.git
151170 cd libvdpau
152171 ./autogen.sh --enable-static
153172 make -j$(nproc)
154173 sudo make install
174+ cd ..
175+ rm -rf libvdpau
155176
156177 - name : FFmpeg cache.
157178 id : cache-ffmpeg
@@ -267,6 +288,8 @@ jobs:
267288
268289 make -j$(nproc)
269290 sudo make install
291+ cd ..
292+ rm -rf ffmpeg
270293 - name : FFmpeg install.
271294 run : |
272295 cd $LibrariesPath
@@ -293,18 +316,20 @@ jobs:
293316 ./configure
294317 make -j$(nproc)
295318 sudo make install
319+ cd ..
320+ rm -rf portaudio
296321
297322 - name : OpenAL Soft.
298323 run : |
299324 cd $LibrariesPath
300325
301- git clone $GIT/kcat/openal-soft.git
302- cd openal-soft
303- git checkout openal-soft-1.19.1
304- cd build
326+ git clone -b openal-soft-1.19.1 --depth=1 $GIT/kcat/openal-soft.git
327+ cd openal-soft/build
305328 cmake -D LIBTYPE:STRING=STATIC ..
306329 make -j$(nproc)
307330 sudo make install
331+ cd -
332+ rm -rf openal-soft
308333
309334 - name : OpenSSL cache.
310335 id : cache-openssl
@@ -317,12 +342,15 @@ jobs:
317342 run : |
318343 cd $LibrariesPath
319344
320- git clone $GIT/openssl/openssl openssl_$OPENSSL_VER
321- cd openssl_$OPENSSL_VER
322- git checkout OpenSSL_1_1_1-stable
345+ opensslDir=openssl_${OPENSSL_VER}
346+ git clone -b OpenSSL_${OPENSSL_VER}-stable --depth=1 \
347+ $GIT/openssl/openssl $opensslDir
348+ cd $opensslDir
323349 ./config --prefix=$LibrariesPath/openssl-cache
324350 make -j$(nproc)
325- sudo make install
351+ sudo make install_sw
352+ cd ..
353+ rm -rf $opensslDir
326354 - name : OpenSSL install.
327355 run : |
328356 cd $LibrariesPath
@@ -333,12 +361,25 @@ jobs:
333361 run : |
334362 cd $LibrariesPath
335363
336- git clone $GIT/xkbcommon/libxkbcommon.git
364+ git clone -b xkbcommon-0.8.4 --depth=1 $GIT/xkbcommon/libxkbcommon.git
337365 cd libxkbcommon
338- git checkout xkbcommon-0.8.4
339366 ./autogen.sh
340367 make -j$(nproc)
341368 sudo make install
369+ cd ..
370+ rm -rf libxkbcommon
371+
372+ - name : Libwayland.
373+ run : |
374+ cd $LibrariesPath
375+
376+ git clone -b 1.16 https://gitlab.freedesktop.org/wayland/wayland
377+ cd wayland
378+ ./autogen.sh --enable-static --disable-documentation
379+ make -j$(nproc)
380+ sudo make install
381+ cd ..
382+ rm -rf wayland
342383
343384 - name : Qt 5.12.5 cache.
344385 id : cache-qt
@@ -351,15 +392,12 @@ jobs:
351392 run : |
352393 cd $LibrariesPath
353394
354- git clone git://code.qt.io/qt/qt5.git qt_$QT
355- cd qt_$QT
356- perl init-repository --module-subset=qtbase,qtimageformats,qtsvg
357- git checkout v5.12.5
358- git submodule update qtbase
359- git submodule update qtimageformats
360- git submodule update qtsvg
395+ git clone -b v5.12.5 --depth=1 git://code.qt.io/qt/qt5.git qt_${QT}
396+ cd qt_${QT}
397+ perl init-repository --module-subset=qtbase,qtwayland,qtimageformats,qtsvg
398+ git submodule update qtbase qtwayland qtimageformats qtsvg
361399 cd qtbase
362- git apply ../../patches/qtbase_$QT .diff
400+ git apply ../../patches/qtbase_${QT} .diff
363401 cd src/plugins/platforminputcontexts
364402 git clone $GIT/desktop-app/fcitx.git
365403 git clone $GIT/desktop-app/hime.git
@@ -379,16 +417,18 @@ jobs:
379417 -qt-xcb \
380418 -system-freetype \
381419 -fontconfig \
382- -no-opengl \
383420 -no-gtk \
384421 -static \
422+ -dbus-runtime \
385423 -openssl-linked \
386424 -I "$OPENSSL_PREFIX/include" OPENSSL_LIBS="$OPENSSL_PREFIX/lib/libssl.a $OPENSSL_PREFIX/lib/libcrypto.a -ldl -lpthread" \
387425 -nomake examples \
388426 -nomake tests
389427
390428 make -j$(nproc)
391429 sudo make install
430+ cd ..
431+ rm -rf qt_${QT}
392432 - name : Qt 5.12.5 install.
393433 run : |
394434 cd $LibrariesPath
@@ -439,6 +479,8 @@ jobs:
439479 make -j$(nproc) dump_syms
440480
441481 mv dump_syms $BreakpadCache/
482+ cd ..
483+ rm -rf gyp breakpad
442484 - name : Breakpad install.
443485 run : |
444486 cd $LibrariesPath
0 commit comments