Skip to content

Commit f21f269

Browse files
kamfretozTheLastRar
andcommitted
Qt: Support APNG backgrounds
Co-Authored-By: TheLastRar <[email protected]>
1 parent 3b5c6c0 commit f21f269

File tree

10 files changed

+241
-1
lines changed

10 files changed

+241
-1
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index bace076..bfb1c66 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -21,6 +21,10 @@ endif ()
6+
7+
find_package(Qt${APNG_QT_VERSION} REQUIRED COMPONENTS Core Gui)
8+
9+
+set(CMAKE_FIND_FRAMEWORK NEVER)
10+
+find_package(PNG 1.6.40 REQUIRED)
11+
+find_package(ZLIB REQUIRED)
12+
+
13+
add_subdirectory(src)
14+
15+
if(APNG_TESTS)
16+
diff --git a/cmake/FindZLib.cmake b/cmake/FindZLib.cmake
17+
deleted file mode 100644
18+
index f8e9220..0000000
19+
--- a/cmake/FindZLib.cmake
20+
+++ /dev/null
21+
@@ -1 +0,0 @@
22+
-add_library(ZLIB::ZLIB ALIAS zlibstatic) # use our zlib
23+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
24+
index 697df95..0e89371 100644
25+
--- a/src/CMakeLists.txt
26+
+++ b/src/CMakeLists.txt
27+
@@ -1,2 +1 @@
28+
-add_subdirectory(3rdparty EXCLUDE_FROM_ALL)
29+
add_subdirectory(plugins)
30+
diff --git a/src/plugins/imageformats/apng/CMakeLists.txt b/src/plugins/imageformats/apng/CMakeLists.txt
31+
index e1b3fd9..72164fb 100644
32+
--- a/src/plugins/imageformats/apng/CMakeLists.txt
33+
+++ b/src/plugins/imageformats/apng/CMakeLists.txt
34+
@@ -14,13 +14,10 @@ target_sources(ApngImagePlugin PRIVATE ${APNG_SOURCES})
35+
target_link_libraries(ApngImagePlugin PRIVATE
36+
Qt${APNG_QT_VERSION}::Core
37+
Qt${APNG_QT_VERSION}::Gui
38+
- png_static
39+
- zlibstatic
40+
+ PNG::PNG
41+
+ ZLIB::ZLIB
42+
)
43+
44+
-get_target_property(_png_include png_static INCLUDE_DIRECTORIES)
45+
-target_include_directories(ApngImagePlugin PRIVATE ${_png_include})
46+
-
47+
target_compile_definitions(ApngImagePlugin PRIVATE
48+
QT_DEPRECATED_WARNINGS
49+
QT_ASCII_CAST_WARNINGS
50+
@@ -31,3 +28,10 @@ set_target_properties(ApngImagePlugin PROPERTIES
51+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/plugins/imageformats"
52+
LIBRARY_OUTPUT_NAME qapng
53+
)
54+
+
55+
+install(TARGETS ApngImagePlugin DESTINATION "plugins/imageformats")
56+
+
57+
+if(WIN32 AND MSVC)
58+
+ set_target_properties(ApngImagePlugin PROPERTIES DEBUG_POSTFIX d)
59+
+ install(FILES $<TARGET_PDB_FILE:ApngImagePlugin> DESTINATION "plugins/imageformats" OPTIONAL)
60+
+endif()

.github/workflows/scripts/linux/build-dependencies-qt.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ LIBPNG=1.6.50
2020
LIBWEBP=1.5.0
2121
SDL=SDL3-3.2.18
2222
QT=6.9.1
23+
QTAPNG=1.3.0
2324
LZ4=1.10.0
2425
ZSTD=1.5.7
2526
KDDOCKWIDGETS=2.2.3
@@ -38,6 +39,7 @@ cat > SHASUMS <<EOF
3839
fd6f417fe9e3a071cf1424a5152d926a34c4a3c5070745470be6cf12a404ed79 $LIBBACKTRACE.zip
3940
aadc97ea91f6ef078b0ae3a62bba69e008d9a7db19b34e4ac973b19b71b4217c libjpeg-turbo-$LIBJPEGTURBO.tar.gz
4041
4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307 libpng-$LIBPNG.tar.xz
42+
687ddc0c7cb128a3ea58e159b5129252537c27ede0c32a93f11f03127f0c0165 libpng-$LIBPNG-apng.patch.gz
4143
7d6fab70cf844bf6769077bd5d7a74893f8ffd4dfb42861745750c63c2a5c92c libwebp-$LIBWEBP.tar.gz
4244
1a775bde924397a8e0c08bfda198926c17be859d0288ad0dec1dea1b2ee04f8f $SDL.tar.gz
4345
537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b lz4-$LZ4.tar.gz
@@ -48,6 +50,7 @@ ebe9f238daaf9bb752c7233edadf4af33fc4fa30d914936812b6410d3af1577c qtimageformats
4850
90c4a562f4ccfd043fd99f34c600853e0b5ba9babc6ec616c0f306f2ce3f4b4c qttools-everywhere-src-$QT.tar.xz
4951
9761a1a555f447cdeba79fdec6a705dee8a7882ac10c12e85f49467ddd01a741 qttranslations-everywhere-src-$QT.tar.xz
5052
7d21ea0e687180ebb19b9a1f86ae9cfa7a25b4f02d5db05ec834164409932e3e qtwayland-everywhere-src-$QT.tar.xz
53+
f1d3be3489f758efe1a8f12118a212febbe611aa670af32e0159fa3c1feab2a6 QtApng-$QTAPNG.tar.gz
5154
a8e4a25e5c2686fd36981e527ed05e451fcfc226bddf350f4e76181371190937 shaderc-$SHADERC.tar.gz
5255
9427deccbdf4bde6a269938df38c6bd75247493786a310d8d733a2c82065ef47 shaderc-glslang-$SHADERC_GLSLANG.tar.gz
5356
c2225a49c3d7efa5c4f4ce4a6b42081e6ea3daca376f3353d9d7c2722d77a28a shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz
@@ -61,6 +64,7 @@ curl -L \
6164
-O "https://github.com/ianlancetaylor/libbacktrace/archive/$LIBBACKTRACE.zip" \
6265
-O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" \
6366
-O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.xz" \
67+
-O "https://download.sourceforge.net/libpng-apng/libpng-$LIBPNG-apng.patch.gz" \
6468
-O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" \
6569
-O "https://github.com/lz4/lz4/releases/download/v$LZ4/lz4-$LZ4.tar.gz" \
6670
-O "https://libsdl.org/release/$SDL.tar.gz" \
@@ -71,6 +75,7 @@ curl -L \
7175
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \
7276
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \
7377
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtwayland-everywhere-src-$QT.tar.xz" \
78+
-o "QtApng-$QTAPNG.tar.gz" "https://github.com/jurplel/QtApng/archive/refs/tags/$QTAPNG.tar.gz" \
7479
-o "shaderc-$SHADERC.tar.gz" "https://github.com/google/shaderc/archive/refs/tags/v$SHADERC.tar.gz" \
7580
-o "shaderc-glslang-$SHADERC_GLSLANG.tar.gz" "https://github.com/KhronosGroup/glslang/archive/$SHADERC_GLSLANG.tar.gz" \
7681
-o "shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Headers/archive/$SHADERC_SPIRVHEADERS.tar.gz" \
@@ -93,7 +98,9 @@ cd ..
9398
echo "Building libpng..."
9499
rm -fr "libpng-$LIBPNG"
95100
tar xf "libpng-$LIBPNG.tar.xz"
101+
gunzip -d -f "libpng-$LIBPNG-apng.patch.gz"
96102
cd "libpng-$LIBPNG"
103+
patch -p1 < "../libpng-$LIBPNG-apng.patch"
97104
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_STATIC=OFF -DPNG_SHARED=ON -DPNG_TOOLS=OFF -B build -G Ninja
98105
cmake --build build --parallel
99106
ninja -C build install
@@ -217,6 +224,16 @@ cmake --build . --parallel
217224
ninja install
218225
cd ../../
219226

227+
echo "Building Qt APNG..."
228+
rm -fr "QtApng-$QTAPNG"
229+
tar xf "QtApng-$QTAPNG.tar.gz"
230+
cd "QtApng-$QTAPNG"
231+
patch -p1 < "$SCRIPTDIR/../common/qtapng-cmake.patch"
232+
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -B build -G Ninja
233+
cmake --build build --parallel
234+
ninja -C build install
235+
cd ..
236+
220237
echo "Building KDDockWidgets..."
221238
rm -fr "KDDockWidgets-$KDDOCKWIDGETS"
222239
tar xf "KDDockWidgets-$KDDOCKWIDGETS.tar.gz"
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"name": "libpng",
3+
"buildsystem": "cmake-ninja",
4+
"builddir": true,
5+
"config-opts": [
6+
"-DPNG_TESTS=OFF",
7+
"-DPNG_STATIC=OFF",
8+
"-DPNG_SHARED=ON",
9+
"-DPNG_TOOLS=OFF"
10+
],
11+
"build-options": {
12+
"strip": true
13+
},
14+
"sources": [
15+
{
16+
"type": "archive",
17+
"url": "https://downloads.sourceforge.net/project/libpng/libpng16/1.6.50/libpng-1.6.50.tar.xz",
18+
"sha256": "4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307"
19+
},
20+
{
21+
"type": "file",
22+
"url": "https://download.sourceforge.net/libpng-apng/libpng-1.6.50-apng.patch.gz",
23+
"dest-filename": "libpng-1.6.50-apng.patch.gz",
24+
"sha256": "687ddc0c7cb128a3ea58e159b5129252537c27ede0c32a93f11f03127f0c0165"
25+
},
26+
{
27+
"type": "shell",
28+
"commands":
29+
[
30+
"gunzip -f libpng-1.6.50-apng.patch.gz",
31+
"patch -p1 < \"libpng-1.6.50-apng.patch\""
32+
]
33+
}
34+
],
35+
"cleanup": [
36+
"/bin",
37+
"/include",
38+
"/lib/*.a",
39+
"/lib/*.la",
40+
"/lib/cmake",
41+
"/lib/libpng",
42+
"/lib/pkgconfig",
43+
"/share/man"
44+
]
45+
}
46+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"name": "qtapng",
3+
"buildsystem": "cmake-ninja",
4+
"builddir": true,
5+
"config-opts": [
6+
"-DCMAKE_PREFIX_PATH=\"${FLATPAK_DEST}\""
7+
],
8+
"build-options": {
9+
"strip": true
10+
},
11+
"sources": [
12+
{
13+
"type": "git",
14+
"url": "https://github.com/jurplel/QtApng.git",
15+
"tag": "1.3.0",
16+
"commit": "bd15516b281204e90ecd5b80b00d1274b062f5fc"
17+
},
18+
{
19+
"type": "patch",
20+
"path": "../../../common/qtapng-cmake.patch"
21+
}
22+
],
23+
"cleanup": [
24+
"/plugins"
25+
],
26+
"post-install": [
27+
"mv ${FLATPAK_DEST}/plugins/* ${FLATPAK_DEST}/bin/"
28+
]
29+
}

.github/workflows/scripts/linux/flatpak/net.pcsx2.PCSX2.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
"modules/23-kddockwidgets.json",
3333
"modules/24-plutovg.json",
3434
"modules/25-plutosvg.json",
35+
"modules/26-libpng.json",
36+
"modules/27-qtapng.json",
3537
{
3638
"name": "pcsx2",
3739
"buildsystem": "cmake-ninja",
@@ -45,6 +47,7 @@
4547
"cxxflags": "",
4648
"cxxflags-override": true,
4749
"config-opts": [
50+
"-DCMAKE_PREFIX_PATH=\"${FLATPAK_DEST}\"",
4851
"-DCMAKE_BUILD_TYPE=Release",
4952
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON",
5053
"-DCMAKE_C_COMPILER=/usr/lib/sdk/llvm18/bin/clang",

.github/workflows/scripts/macos/build-dependencies-universal.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ LIBWEBP=1.5.0
4949
FFMPEG=6.0
5050
MOLTENVK=1.2.9
5151
QT=6.7.3
52+
QTAPNG=1.3.0
5253
KDDOCKWIDGETS=2.2.3
5354
PLUTOVG=1.1.0
5455
PLUTOSVG=0.0.7
@@ -83,6 +84,7 @@ cat > SHASUMS <<EOF
8384
eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3 zstd-$ZSTD.tar.gz
8485
537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b lz4-$LZ4.tar.gz
8586
4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307 libpng-$LIBPNG.tar.xz
87+
687ddc0c7cb128a3ea58e159b5129252537c27ede0c32a93f11f03127f0c0165 libpng-$LIBPNG-apng.patch.gz
8688
7d6fab70cf844bf6769077bd5d7a74893f8ffd4dfb42861745750c63c2a5c92c libwebp-$LIBWEBP.tar.gz
8789
aadc97ea91f6ef078b0ae3a62bba69e008d9a7db19b34e4ac973b19b71b4217c libjpeg-turbo-$LIBJPEGTURBO.tar.gz
8890
57be87c22d9b49c112b6d24bc67d42508660e6b718b3db89c44e47e289137082 ffmpeg-$FFMPEG.tar.xz
@@ -92,6 +94,7 @@ f415a09385030c6510a936155ce211f617c31506db5fbc563e804345f1ecf56e v$MOLTENVK.tar
9294
40142cb71fb1e07ad612bc361b67f5d54cd9367f9979ae6b86124a064deda06b qtsvg-everywhere-src-$QT.tar.xz
9395
f03bb7df619cd9ac9dba110e30b7bcab5dd88eb8bdc9cc752563b4367233203f qttools-everywhere-src-$QT.tar.xz
9496
dcc762acac043b9bb5e4d369b6d6f53e0ecfcf76a408fe0db5f7ef071c9d6dc8 qttranslations-everywhere-src-$QT.tar.xz
97+
f1d3be3489f758efe1a8f12118a212febbe611aa670af32e0159fa3c1feab2a6 QtApng-$QTAPNG.tar.gz
9598
a8e4a25e5c2686fd36981e527ed05e451fcfc226bddf350f4e76181371190937 shaderc-$SHADERC.tar.gz
9699
9427deccbdf4bde6a269938df38c6bd75247493786a310d8d733a2c82065ef47 shaderc-glslang-$SHADERC_GLSLANG.tar.gz
97100
c2225a49c3d7efa5c4f4ce4a6b42081e6ea3daca376f3353d9d7c2722d77a28a shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz
@@ -108,6 +111,7 @@ curl -C - -L \
108111
-O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" \
109112
-O "https://github.com/lz4/lz4/releases/download/v$LZ4/lz4-$LZ4.tar.gz" \
110113
-O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.xz" \
114+
-O "https://download.sourceforge.net/libpng-apng/libpng-$LIBPNG-apng.patch.gz" \
111115
-O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" \
112116
-O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" \
113117
-O "https://ffmpeg.org/releases/ffmpeg-$FFMPEG.tar.xz" \
@@ -117,6 +121,7 @@ curl -C - -L \
117121
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \
118122
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \
119123
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \
124+
-o "QtApng-$QTAPNG.tar.gz" "https://github.com/jurplel/QtApng/archive/refs/tags/$QTAPNG.tar.gz" \
120125
-o "shaderc-$SHADERC.tar.gz" "https://github.com/google/shaderc/archive/refs/tags/v$SHADERC.tar.gz" \
121126
-o "shaderc-glslang-$SHADERC_GLSLANG.tar.gz" "https://github.com/KhronosGroup/glslang/archive/$SHADERC_GLSLANG.tar.gz" \
122127
-o "shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Headers/archive/$SHADERC_SPIRVHEADERS.tar.gz" \
@@ -200,7 +205,9 @@ cd ..
200205
echo "Installing libpng..."
201206
rm -fr "libpng-$LIBPNG"
202207
tar xf "libpng-$LIBPNG.tar.xz"
208+
gunzip -d -f "libpng-$LIBPNG-apng.patch.gz"
203209
cd "libpng-$LIBPNG"
210+
patch -p1 < "../libpng-$LIBPNG-apng.patch"
204211
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_FRAMEWORK=OFF -B build
205212
make -C build "-j$NPROCS"
206213
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_FRAMEWORK=OFF -DPNG_ARM_NEON=on -B build-arm64
@@ -369,6 +376,16 @@ make "-j$NPROCS"
369376
make install
370377
cd ../..
371378

379+
echo "Building Qt APNG..."
380+
rm -fr "QtApng-$QTAPNG"
381+
tar xf "QtApng-$QTAPNG.tar.gz"
382+
cd "QtApng-$QTAPNG"
383+
patch -p1 < "$SCRIPTDIR/../common/qtapng-cmake.patch"
384+
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -B build
385+
make -C build "-j$NPROCS"
386+
make -C build install
387+
cd ..
388+
372389
echo "Building KDDockWidgets..."
373390
rm -fr "KDDockWidgets-$KDDOCKWIDGETS"
374391
tar xf "KDDockWidgets-$KDDOCKWIDGETS.tar.gz"

.github/workflows/scripts/macos/build-dependencies.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ LIBWEBP=1.5.0
3131
FFMPEG=6.0
3232
MOLTENVK=1.2.9
3333
QT=6.7.3
34+
QTAPNG=1.3.0
3435
KDDOCKWIDGETS=2.2.3
3536
PLUTOVG=1.1.0
3637
PLUTOSVG=0.0.7
@@ -63,6 +64,7 @@ cat > SHASUMS <<EOF
6364
eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3 zstd-$ZSTD.tar.gz
6465
537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b lz4-$LZ4.tar.gz
6566
4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307 libpng-$LIBPNG.tar.xz
67+
687ddc0c7cb128a3ea58e159b5129252537c27ede0c32a93f11f03127f0c0165 libpng-$LIBPNG-apng.patch.gz
6668
7d6fab70cf844bf6769077bd5d7a74893f8ffd4dfb42861745750c63c2a5c92c libwebp-$LIBWEBP.tar.gz
6769
aadc97ea91f6ef078b0ae3a62bba69e008d9a7db19b34e4ac973b19b71b4217c libjpeg-turbo-$LIBJPEGTURBO.tar.gz
6870
57be87c22d9b49c112b6d24bc67d42508660e6b718b3db89c44e47e289137082 ffmpeg-$FFMPEG.tar.xz
@@ -72,6 +74,7 @@ f415a09385030c6510a936155ce211f617c31506db5fbc563e804345f1ecf56e v$MOLTENVK.tar
7274
40142cb71fb1e07ad612bc361b67f5d54cd9367f9979ae6b86124a064deda06b qtsvg-everywhere-src-$QT.tar.xz
7375
f03bb7df619cd9ac9dba110e30b7bcab5dd88eb8bdc9cc752563b4367233203f qttools-everywhere-src-$QT.tar.xz
7476
dcc762acac043b9bb5e4d369b6d6f53e0ecfcf76a408fe0db5f7ef071c9d6dc8 qttranslations-everywhere-src-$QT.tar.xz
77+
f1d3be3489f758efe1a8f12118a212febbe611aa670af32e0159fa3c1feab2a6 QtApng-$QTAPNG.tar.gz
7578
a8e4a25e5c2686fd36981e527ed05e451fcfc226bddf350f4e76181371190937 shaderc-$SHADERC.tar.gz
7679
9427deccbdf4bde6a269938df38c6bd75247493786a310d8d733a2c82065ef47 shaderc-glslang-$SHADERC_GLSLANG.tar.gz
7780
c2225a49c3d7efa5c4f4ce4a6b42081e6ea3daca376f3353d9d7c2722d77a28a shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz
@@ -88,6 +91,7 @@ curl -L \
8891
-O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" \
8992
-O "https://github.com/lz4/lz4/releases/download/v$LZ4/lz4-$LZ4.tar.gz" \
9093
-O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.xz" \
94+
-O "https://download.sourceforge.net/libpng-apng/libpng-$LIBPNG-apng.patch.gz" \
9195
-O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" \
9296
-O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" \
9397
-O "https://ffmpeg.org/releases/ffmpeg-$FFMPEG.tar.xz" \
@@ -97,6 +101,7 @@ curl -L \
97101
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \
98102
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \
99103
-O "https://download.qt.io/archive/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \
104+
-o "QtApng-$QTAPNG.tar.gz" "https://github.com/jurplel/QtApng/archive/refs/tags/$QTAPNG.tar.gz" \
100105
-o "shaderc-$SHADERC.tar.gz" "https://github.com/google/shaderc/archive/refs/tags/v$SHADERC.tar.gz" \
101106
-o "shaderc-glslang-$SHADERC_GLSLANG.tar.gz" "https://github.com/KhronosGroup/glslang/archive/$SHADERC_GLSLANG.tar.gz" \
102107
-o "shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Headers/archive/$SHADERC_SPIRVHEADERS.tar.gz" \
@@ -156,7 +161,9 @@ cd ..
156161
echo "Installing libpng..."
157162
rm -fr "libpng-$LIBPNG"
158163
tar xf "libpng-$LIBPNG.tar.xz"
164+
gunzip -d -f "libpng-$LIBPNG-apng.patch.gz"
159165
cd "libpng-$LIBPNG"
166+
patch -p1 < "../libpng-$LIBPNG-apng.patch"
160167
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_FRAMEWORK=OFF -B build
161168
make -C build "-j$NPROCS"
162169
make -C build install
@@ -331,6 +338,16 @@ make "-j$NPROCS"
331338
make install
332339
cd ../..
333340

341+
echo "Building Qt APNG..."
342+
rm -fr "QtApng-$QTAPNG"
343+
tar xf "QtApng-$QTAPNG.tar.gz"
344+
cd "QtApng-$QTAPNG"
345+
patch -p1 < "$SCRIPTDIR/../common/qtapng-cmake.patch"
346+
cmake "${CMAKE_COMMON[@]}" -B build
347+
make -C build "-j$NPROCS"
348+
make -C build install
349+
cd ..
350+
334351
echo "Building KDDockWidgets..."
335352
rm -fr "KDDockWidgets-$KDDOCKWIDGETS"
336353
tar xf "KDDockWidgets-$KDDOCKWIDGETS.tar.gz"

0 commit comments

Comments
 (0)