mirror of
https://github.com/GerbilSoft/rom-properties.git
synced 2025-06-18 19:45:41 -04:00
Compare commits
167 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
19e50372da | ||
![]() |
37dcb72e6b | ||
![]() |
2613201bb3 | ||
![]() |
aeb568dda3 | ||
![]() |
a138b123e3 | ||
![]() |
4badcf4bfb | ||
![]() |
b0d5e05cce | ||
![]() |
523de9913c | ||
![]() |
f0ee7bee10 | ||
![]() |
c3643b9244 | ||
![]() |
72b628d8ba | ||
![]() |
933b3d2f4e | ||
![]() |
eee8b83f9a | ||
![]() |
b19f128903 | ||
![]() |
73eb28c4ee | ||
![]() |
e5c512ca92 | ||
![]() |
1da1c39c18 | ||
![]() |
da852e5d50 | ||
![]() |
f157be4a97 | ||
![]() |
a19815f744 | ||
![]() |
a5554fd244 | ||
![]() |
0c512deed6 | ||
![]() |
704a5eead5 | ||
![]() |
783d384b04 | ||
![]() |
9ca7daf9c8 | ||
![]() |
c31919826b | ||
![]() |
bf2d3af7c3 | ||
![]() |
e2eede76f7 | ||
![]() |
e12bb51b47 | ||
![]() |
417825cd6f | ||
![]() |
da94256a37 | ||
![]() |
222f2456fd | ||
![]() |
11da731ef7 | ||
![]() |
a4efadbc56 | ||
![]() |
0e1a5ce237 | ||
![]() |
d557b607c2 | ||
![]() |
1897ac198f | ||
![]() |
5083161c23 | ||
![]() |
22da0c2e21 | ||
![]() |
8f762b7c78 | ||
![]() |
acdf3544e1 | ||
![]() |
bb2e0b5e87 | ||
![]() |
65a3855b98 | ||
![]() |
847342306a | ||
![]() |
3fdd98929d | ||
![]() |
41765be492 | ||
![]() |
4342ce8a1b | ||
![]() |
6e7d57282f | ||
![]() |
3f1f92b18a | ||
![]() |
a5d22511e0 | ||
![]() |
618c7c6a8d | ||
![]() |
9a4ab48ccb | ||
![]() |
64fe76a285 | ||
![]() |
993e52084d | ||
![]() |
55cad0ad98 | ||
![]() |
93e78417e0 | ||
![]() |
453461e8fb | ||
![]() |
f5be3c81a4 | ||
![]() |
9994c2df94 | ||
![]() |
6026b40df5 | ||
![]() |
409915591d | ||
![]() |
8c5888e9e5 | ||
![]() |
d0fb8dc73e | ||
![]() |
a837c883ee | ||
![]() |
44ad904c71 | ||
![]() |
b3b6eb5b37 | ||
![]() |
95bcbc25fb | ||
![]() |
821155bd83 | ||
![]() |
e765792ebb | ||
![]() |
194b3dcf61 | ||
![]() |
8378697be1 | ||
![]() |
1caf44d15e | ||
![]() |
fbdeae25a5 | ||
![]() |
de802835f7 | ||
![]() |
1c96133917 | ||
![]() |
d01201a184 | ||
![]() |
f6e5229b72 | ||
![]() |
fe85d93fc3 | ||
![]() |
7edb6df2e4 | ||
![]() |
eb5300413b | ||
![]() |
37dd0c3ffe | ||
![]() |
af2c512181 | ||
![]() |
b02a2b8009 | ||
![]() |
081d4a4b87 | ||
![]() |
776998d0ed | ||
![]() |
e84ccfd53d | ||
![]() |
e2f0b41964 | ||
![]() |
c65ea8c0ed | ||
![]() |
988df314e6 | ||
![]() |
a49fb884f1 | ||
![]() |
c7ccd7a39a | ||
![]() |
6b30dd5b70 | ||
![]() |
5ed38edbec | ||
![]() |
b884747254 | ||
![]() |
1aad707f88 | ||
![]() |
5fd65dc7e2 | ||
![]() |
50ae166484 | ||
![]() |
6577715f73 | ||
![]() |
2c17a8e727 | ||
![]() |
cff7086b3d | ||
![]() |
981c173142 | ||
![]() |
df719e959a | ||
![]() |
3af7964b0c | ||
![]() |
723712102a | ||
![]() |
3416f16ad2 | ||
![]() |
3db391e8c1 | ||
![]() |
4ab931b127 | ||
![]() |
e1ef6e6d2f | ||
![]() |
e9625cb876 | ||
![]() |
79c3a2e34d | ||
![]() |
8650f2b1c2 | ||
![]() |
e2f4ddde72 | ||
![]() |
88a9a603ce | ||
![]() |
60b18c408f | ||
![]() |
ed799a1cc2 | ||
![]() |
407fb36461 | ||
![]() |
55fac18b76 | ||
![]() |
440bb7aeb5 | ||
![]() |
c0c8b2582c | ||
![]() |
7e51a47609 | ||
![]() |
b72bd8a436 | ||
![]() |
7d6c7064d2 | ||
![]() |
065c86149a | ||
![]() |
32ac318236 | ||
![]() |
5de651dbbe | ||
![]() |
34f76050cb | ||
![]() |
223cee6c9c | ||
![]() |
fc44e1da01 | ||
![]() |
7c96eb5381 | ||
![]() |
54a7b12523 | ||
![]() |
443df8a7ab | ||
![]() |
86638f478c | ||
![]() |
55cb219a17 | ||
![]() |
05f08c2d32 | ||
![]() |
8e841026e9 | ||
![]() |
46c83d92c1 | ||
![]() |
44eba93a3e | ||
![]() |
ade40a4965 | ||
![]() |
0f2eccd3ac | ||
![]() |
99942e6a04 | ||
![]() |
1912c62551 | ||
![]() |
43a7bd4a49 | ||
![]() |
665a9f878c | ||
![]() |
94470e319a | ||
![]() |
9a5550f1f5 | ||
![]() |
f13bde810f | ||
![]() |
f6d9394da8 | ||
![]() |
a83c05459d | ||
![]() |
18b7ec55d3 | ||
![]() |
53648f1ffa | ||
![]() |
03df42456c | ||
![]() |
d241d33537 | ||
![]() |
e495796ee8 | ||
![]() |
e81f24cc39 | ||
![]() |
381980d13e | ||
![]() |
23f71c4f9c | ||
![]() |
78da45fb5d | ||
![]() |
f2c3b6c5ba | ||
![]() |
d5ede2ee5b | ||
![]() |
23c473e5e3 | ||
![]() |
1f856117ec | ||
![]() |
3efdc825d9 | ||
![]() |
611fea3782 | ||
![]() |
44608520b8 | ||
![]() |
0328879a01 | ||
![]() |
53b74e0467 | ||
![]() |
c632a35c62 |
@ -1,5 +1,5 @@
|
||||
# ROM Properties Page Shell Extension
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 3.5...3.10)
|
||||
|
||||
# CMP0048: Set VERSION variables based on the project version specified in PROJECT().
|
||||
# Introduced in CMake 3.0.
|
||||
@ -27,6 +27,12 @@ IF(POLICY CMP0151)
|
||||
CMAKE_POLICY(SET CMP0151 NEW)
|
||||
ENDIF(POLICY CMP0151)
|
||||
|
||||
# CMP0177: Normalize INSTALL() destination paths.
|
||||
# Introduced in CMake 3.31.
|
||||
IF(POLICY CMP0177)
|
||||
CMAKE_POLICY(SET CMP0177 NEW)
|
||||
ENDIF(POLICY CMP0177)
|
||||
|
||||
# Read the project version.
|
||||
CONFIGURE_FILE(version.txt version.txt.tmp)
|
||||
FILE(STRINGS version.txt RP_VERSION_FILE)
|
||||
@ -89,13 +95,13 @@ SET(CMAKE_C_STANDARD_REQUIRED OFF)
|
||||
SET(CMAKE_C_EXTENSIONS ON)
|
||||
SET(CMAKE_CXX_STANDARD_REQUIRED OFF)
|
||||
SET(CMAKE_CXX_EXTENSIONS ON)
|
||||
IF(CMAKE_VERSION VERSION_GREATER 3.20) # >= 3.21
|
||||
IF(CMAKE_VERSION VERSION_GREATER 3.20.99) # >= 3.21
|
||||
SET(CMAKE_C_STANDARD 17)
|
||||
SET(CMAKE_CXX_STANDARD 20)
|
||||
ELSEIF(CMAKE_VERSION VERSION_GREATER 3.11) # >= 3.12
|
||||
ELSEIF(CMAKE_VERSION VERSION_GREATER 3.11.99) # >= 3.12
|
||||
SET(CMAKE_C_STANDARD 11)
|
||||
SET(CMAKE_CXX_STANDARD 20)
|
||||
ELSEIF(CMAKE_VERSION VERSION_GREATER 3.7) # >= 3.8
|
||||
ELSEIF(CMAKE_VERSION VERSION_GREATER 3.7.99) # >= 3.8
|
||||
SET(CMAKE_C_STANDARD 11)
|
||||
SET(CMAKE_CXX_STANDARD 17)
|
||||
ELSE()
|
||||
|
43
NEWS.md
43
NEWS.md
@ -1,5 +1,48 @@
|
||||
# Changes
|
||||
|
||||
## v2.6 (released 2025/??/??)
|
||||
|
||||
* New parsers:
|
||||
* ICO: Windows icons and cursors. Supports most icons and cursors designed
|
||||
for Windows 3.x and later (including Windows Vista PNG-format icons),
|
||||
plus the old Windows 1.x format. Only the "best" version for each icon
|
||||
is selected for thumbnailing. (Largest size and highest color depth.)
|
||||
* Icon thumbnailing is not actually enabled on Windows and Linux systems
|
||||
at the moment, since it may conflict with system icon handling.
|
||||
It's mostly only usable for rpcli and for use as a subclass elsewhere.
|
||||
* Partially fixes #170: Icon files: ICNS, ICO, EXE
|
||||
|
||||
* New parser features:
|
||||
* Xbox360_STFS: Fix titles for some packages that were authored incorrectly
|
||||
and have mojibake titles. Specifically, the titles were originally encoded
|
||||
as UTF-8, but when building the package, they were handled as if they were
|
||||
cp1252 when being converted to UTF-16BE.
|
||||
* Fixes #450: X360 - Non-Latin Titles appearing as mojibake
|
||||
* Reported by @Masamune3210.
|
||||
* EXE: The application icon can now be extracted using rpcli.
|
||||
* ISO: AUTORUN.INF is now parsed. This includes a tab showing the contents
|
||||
of AUTORUN.INF, as well as the disc icon from a .ico or .exe/.dll file.
|
||||
* Fixes #232: ISO: Parse autorun.inf
|
||||
* ISO: Joliet file systems are now partially supported. This was added to
|
||||
handle older Windows disc images that use a long filename for the icon,
|
||||
and the disc is authored with Joliet for long filenames but an old version
|
||||
of ISO-9660, resulting in 8.3 filenames in the ISO-9660 directories.
|
||||
|
||||
* Bug fixes:
|
||||
* Windows: Work around a potential libpng crash when attempting to read
|
||||
empty data as a PNG image. (Needs more debugging for a proper fix...)
|
||||
* See #451: libpng errors crash due to libpng setjmp/longjmp (Windows 10, release builds only)
|
||||
* Reported by @Masamune3210.
|
||||
* Qoi: R/B channels were incorrectly swapped when this was first added in v2.5.
|
||||
* Affects: v2.5 - v2.5.1
|
||||
* Fix an issue where an 'abgr' swizzle might fail on little-endian systems.
|
||||
|
||||
* Other changes:
|
||||
* rpcli: Added more colorization for warning messages.
|
||||
* rpcli: Refactored console handling into a separate library, libgsvt.
|
||||
* IsoPartition: Implemented readdir(). Not currently used by anything, though.
|
||||
* KDE (KF5, KF6): Improved image quality for RFT_LISTDATA fields with icons.
|
||||
|
||||
## v2.5.1 (released 2025/05/10)
|
||||
|
||||
* New parser features:
|
||||
|
8
debian/changelog
vendored
8
debian/changelog
vendored
@ -1,3 +1,11 @@
|
||||
rom-properties (2.5.1-1ppa1~xenial2) xenial; urgency=medium
|
||||
|
||||
* Explicitly specify the Tracker API version.
|
||||
|
||||
NOTE: This must be updated for each Ubuntu version!
|
||||
|
||||
-- David Korth <gerbilsoft@gerbilsoft.com> Sat, 10 May 2025 16:52:48 -0400
|
||||
|
||||
rom-properties (2.5.1-1ppa1~xenial1) xenial; urgency=medium
|
||||
|
||||
* 2.5.1 release.
|
||||
|
20
debian/control
vendored
20
debian/control
vendored
@ -42,7 +42,7 @@ Vcs-Browser: https://github.com/GerbilSoft/rom-properties
|
||||
|
||||
Package: rom-properties-all
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, libromdata6, rom-properties-kde4, rom-properties-kf5, rom-properties-xfce, rom-properties-gtk3, rom-properties-cli, rom-properties-tracker, rom-properties-utils, rom-properties-lang, rom-properties-thumbnailer-dbus
|
||||
Depends: ${misc:Depends}, libromdata7, rom-properties-kde4, rom-properties-kf5, rom-properties-xfce, rom-properties-gtk3, rom-properties-cli, rom-properties-tracker, rom-properties-utils, rom-properties-lang, rom-properties-thumbnailer-dbus
|
||||
Description: ROM Properties Page shell extension (meta package)
|
||||
This shell extension provides thumbnailing and property page functionality
|
||||
for ROM images, disc images, and save files for various game consoles,
|
||||
@ -50,9 +50,9 @@ Description: ROM Properties Page shell extension (meta package)
|
||||
.
|
||||
This is a meta-package that installs all rom-properties packages.
|
||||
|
||||
Package: libromdata6
|
||||
Package: libromdata7
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, rom-properties-data
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, rom-properties-data, liblz4-1, liblzo2-2
|
||||
Description: ROM Properties Page shell extension (shared library)
|
||||
This shell extension provides thumbnailing and property page functionality
|
||||
for ROM images, disc images, and save files for various game consoles,
|
||||
@ -63,7 +63,7 @@ Description: ROM Properties Page shell extension (shared library)
|
||||
|
||||
Package: rom-properties-kde4
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils, rom-properties-xdg
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata7, rom-properties-utils, rom-properties-xdg
|
||||
Recommends: rom-properties-lang
|
||||
Description: ROM Properties Page shell extension (KDE4 UI frontend)
|
||||
This shell extension provides thumbnailing and property page functionality
|
||||
@ -74,7 +74,7 @@ Description: ROM Properties Page shell extension (KDE4 UI frontend)
|
||||
|
||||
Package: rom-properties-kio-servicemenus
|
||||
Architecture: all
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata7, rom-properties-utils
|
||||
Conflicts: rom-properties-kf5 (<< 2.3)
|
||||
Replaces: rom-properties-kf5 (<< 2.3)
|
||||
Description: ROM Properties Page shell extension (KF5/KF6 service menus)
|
||||
@ -86,7 +86,7 @@ Description: ROM Properties Page shell extension (KF5/KF6 service menus)
|
||||
|
||||
Package: rom-properties-kf5
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils, rom-properties-xdg, rom-properties-kio-servicemenus
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata7, rom-properties-utils, rom-properties-xdg, rom-properties-kio-servicemenus
|
||||
Recommends: rom-properties-lang
|
||||
Conflicts: rom-properties-kde5
|
||||
Replaces: rom-properties-kde5
|
||||
@ -99,7 +99,7 @@ Description: ROM Properties Page shell extension (KF5 UI frontend)
|
||||
|
||||
Package: rom-properties-xfce
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils, rom-properties-xdg, rom-properties-thumbnailer-dbus
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata7, rom-properties-utils, rom-properties-xdg, rom-properties-thumbnailer-dbus
|
||||
Recommends: rom-properties-lang, rom-properties-tracker
|
||||
Description: ROM Properties Page shell extension (GTK2 XFCE UI frontend)
|
||||
This shell extension provides thumbnailing and property page functionality
|
||||
@ -113,7 +113,7 @@ Description: ROM Properties Page shell extension (GTK2 XFCE UI frontend)
|
||||
|
||||
Package: rom-properties-gtk3
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils, rom-properties-xdg, rom-properties-thumbnailer-dbus
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata7, rom-properties-utils, rom-properties-xdg, rom-properties-thumbnailer-dbus
|
||||
Recommends: rom-properties-lang, rom-properties-tracker
|
||||
Conflicts: rom-properties-gnome, rom-properties-mate, rom-properties-cinnamon, rom-properties-gtk3-common
|
||||
Replaces: rom-properties-gnome, rom-properties-mate, rom-properties-cinnamon, rom-properties-gtk3-common
|
||||
@ -132,7 +132,7 @@ Description: ROM Properties Page shell extension (GTK3 UI frontend)
|
||||
|
||||
Package: rom-properties-cli
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata7
|
||||
Recommends: rom-properties-lang
|
||||
Description: ROM Properties Page shell extension (command line version)
|
||||
This shell extension provides thumbnailing and property page functionality
|
||||
@ -143,7 +143,7 @@ Description: ROM Properties Page shell extension (command line version)
|
||||
|
||||
Package: rom-properties-tracker
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata7
|
||||
Description: ROM Properties Page shell extension (Tracker metadata extractor module)
|
||||
This shell extension provides thumbnailing and property page functionality
|
||||
for ROM images, disc images, and save files for various game consoles,
|
||||
|
2
debian/rules
vendored
2
debian/rules
vendored
@ -24,7 +24,7 @@ CMAKE_OPTIONS := \
|
||||
-DBUILD_GTK3=ON \
|
||||
-DBUILD_GTK4=OFF \
|
||||
-DBUILD_CLI=ON \
|
||||
-DTRACKER_INSTALL_API_VERSION=AUTO \
|
||||
-DTRACKER_INSTALL_API_VERSION=1 \
|
||||
-DENABLE_PVRTC=ON \
|
||||
-DENABLE_OPENMP=ON \
|
||||
-DENABLE_LTO=OFF \
|
||||
|
2
extlib/CMakeLists.txt
vendored
2
extlib/CMakeLists.txt
vendored
@ -189,12 +189,14 @@ SET(USE_INTERNAL_MINIZIP TRUE PARENT_SCOPE)
|
||||
SET(SKIP_INSTALL_HDR ON)
|
||||
IF(WIN32)
|
||||
SET(USE_INTERNAL_MINIZIP_DLL TRUE PARENT_SCOPE)
|
||||
SET(SKIP_INSTALL_BINARIES ON)
|
||||
SET(SKIP_INSTALL_LIBRARIES OFF)
|
||||
SET(SKIP_INSTALL_ALL OFF)
|
||||
SET(BUILD_SHARED_LIBS ON)
|
||||
SET(BUILD_STATIC_LIBS OFF)
|
||||
ELSE()
|
||||
UNSET(USE_INTERNAL_MINIZIP_DLL PARENT_SCOPE)
|
||||
SET(SKIP_INSTALL_BINARIES ON)
|
||||
SET(SKIP_INSTALL_LIBRARIES ON)
|
||||
SET(SKIP_INSTALL_ALL ON)
|
||||
SET(BUILD_SHARED_LIBS OFF)
|
||||
|
BIN
extlib/gettext.win32/bin.i386/cldr-plurals.exe
vendored
BIN
extlib/gettext.win32/bin.i386/cldr-plurals.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/hostname.exe
vendored
BIN
extlib/gettext.win32/bin.i386/hostname.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/iconv.dll
vendored
BIN
extlib/gettext.win32/bin.i386/iconv.dll
vendored
Binary file not shown.
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/libgettextpo-0.dll
vendored
BIN
extlib/gettext.win32/bin.i386/libgettextpo-0.dll
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/libgettextsrc-0-24.dll
vendored
BIN
extlib/gettext.win32/bin.i386/libgettextsrc-0-24.dll
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/libgettextsrc-0-25.dll
vendored
Executable file
BIN
extlib/gettext.win32/bin.i386/libgettextsrc-0-25.dll
vendored
Executable file
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/libtextstyle-0.dll
vendored
BIN
extlib/gettext.win32/bin.i386/libtextstyle-0.dll
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgattrib.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgattrib.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgcat.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgcat.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgcmp.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgcmp.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgcomm.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgcomm.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgconv.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgconv.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgen.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgen.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgexec.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgexec.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgfilter.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgfilter.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgfmt.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgfmt.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msggrep.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msggrep.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msginit.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msginit.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgmerge.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgmerge.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msgunfmt.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msgunfmt.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/msguniq.exe
vendored
BIN
extlib/gettext.win32/bin.i386/msguniq.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/recode-sr-latin.exe
vendored
BIN
extlib/gettext.win32/bin.i386/recode-sr-latin.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/urlget.exe
vendored
BIN
extlib/gettext.win32/bin.i386/urlget.exe
vendored
Binary file not shown.
BIN
extlib/gettext.win32/bin.i386/xgettext.exe
vendored
BIN
extlib/gettext.win32/bin.i386/xgettext.exe
vendored
Binary file not shown.
2
extlib/gettext.win32/include/libgnuintl.h
vendored
2
extlib/gettext.win32/include/libgnuintl.h
vendored
@ -73,7 +73,7 @@ extern "C" {
|
||||
|
||||
|
||||
/* Version number: (major<<16) + (minor<<8) + subminor */
|
||||
#define LIBINTL_VERSION 0x001800
|
||||
#define LIBINTL_VERSION 0x001900
|
||||
/* rom-properties: LIBINTL_SHLIB_EXPORTED is already dllimport, so don't dllimport it again. */
|
||||
extern LIBINTL_SHLIB_EXPORTED /*__declspec (dllimport)*/ int libintl_version;
|
||||
|
||||
|
49
extlib/gettext.win32/lib.amd64/libgnuintl-8.def
vendored
49
extlib/gettext.win32/lib.amd64/libgnuintl-8.def
vendored
@ -5,6 +5,20 @@ EXPORTS
|
||||
_nl_msg_cat_cntr DATA
|
||||
bind_textdomain_codeset
|
||||
bindtextdomain
|
||||
c32isalnum
|
||||
c32isalpha
|
||||
c32isblank
|
||||
c32iscntrl
|
||||
c32isdigit
|
||||
c32isgraph
|
||||
c32islower
|
||||
c32isprint
|
||||
c32ispunct
|
||||
c32isspace
|
||||
c32isupper
|
||||
c32isxdigit
|
||||
c32tolower
|
||||
c32width
|
||||
dcgettext
|
||||
dcngettext
|
||||
dgettext
|
||||
@ -45,10 +59,45 @@ EXPORTS
|
||||
libintl_wbindtextdomain
|
||||
libintl_wprintf
|
||||
locale_charset
|
||||
mb_copy
|
||||
mb_width_aux
|
||||
mbiterf_next
|
||||
mbrtoc32
|
||||
mbsnlen
|
||||
ngettext
|
||||
rpl_getcwd
|
||||
rpl_iswalnum
|
||||
rpl_iswalpha
|
||||
rpl_iswblank
|
||||
rpl_iswcntrl
|
||||
rpl_iswdigit
|
||||
rpl_iswgraph
|
||||
rpl_iswlower
|
||||
rpl_iswprint
|
||||
rpl_iswpunct
|
||||
rpl_iswspace
|
||||
rpl_iswupper
|
||||
rpl_iswxdigit
|
||||
rpl_localeconv
|
||||
rpl_pthread_once
|
||||
rpl_towlower
|
||||
rpl_towupper
|
||||
setlocale_messages
|
||||
setlocale_messages_null
|
||||
textdomain
|
||||
uc_is_alnum
|
||||
uc_is_alpha
|
||||
uc_is_blank
|
||||
uc_is_cntrl
|
||||
uc_is_digit
|
||||
uc_is_graph
|
||||
uc_is_lower
|
||||
uc_is_print
|
||||
uc_is_punct
|
||||
uc_is_space
|
||||
uc_is_upper
|
||||
uc_is_xdigit
|
||||
uc_tolower
|
||||
uc_width
|
||||
wcwidth
|
||||
wgetcwd
|
||||
|
BIN
extlib/gettext.win32/lib.amd64/libgnuintl-8.dll
vendored
BIN
extlib/gettext.win32/lib.amd64/libgnuintl-8.dll
vendored
Binary file not shown.
BIN
extlib/gettext.win32/lib.amd64/libgnuintl-8.exp
vendored
BIN
extlib/gettext.win32/lib.amd64/libgnuintl-8.exp
vendored
Binary file not shown.
BIN
extlib/gettext.win32/lib.amd64/libgnuintl-8.lib
vendored
BIN
extlib/gettext.win32/lib.amd64/libgnuintl-8.lib
vendored
Binary file not shown.
BIN
extlib/gettext.win32/lib.amd64/libgnuintl.dll.a
vendored
BIN
extlib/gettext.win32/lib.amd64/libgnuintl.dll.a
vendored
Binary file not shown.
49
extlib/gettext.win32/lib.i386/libgnuintl-8.def
vendored
49
extlib/gettext.win32/lib.i386/libgnuintl-8.def
vendored
@ -5,6 +5,20 @@ EXPORTS
|
||||
_nl_msg_cat_cntr DATA
|
||||
bind_textdomain_codeset
|
||||
bindtextdomain
|
||||
c32isalnum
|
||||
c32isalpha
|
||||
c32isblank
|
||||
c32iscntrl
|
||||
c32isdigit
|
||||
c32isgraph
|
||||
c32islower
|
||||
c32isprint
|
||||
c32ispunct
|
||||
c32isspace
|
||||
c32isupper
|
||||
c32isxdigit
|
||||
c32tolower
|
||||
c32width
|
||||
dcgettext
|
||||
dcngettext
|
||||
dgettext
|
||||
@ -45,10 +59,45 @@ EXPORTS
|
||||
libintl_wbindtextdomain
|
||||
libintl_wprintf
|
||||
locale_charset
|
||||
mb_copy
|
||||
mb_width_aux
|
||||
mbiterf_next
|
||||
mbrtoc32
|
||||
mbsnlen
|
||||
ngettext
|
||||
rpl_getcwd
|
||||
rpl_iswalnum
|
||||
rpl_iswalpha
|
||||
rpl_iswblank
|
||||
rpl_iswcntrl
|
||||
rpl_iswdigit
|
||||
rpl_iswgraph
|
||||
rpl_iswlower
|
||||
rpl_iswprint
|
||||
rpl_iswpunct
|
||||
rpl_iswspace
|
||||
rpl_iswupper
|
||||
rpl_iswxdigit
|
||||
rpl_localeconv
|
||||
rpl_pthread_once
|
||||
rpl_towlower
|
||||
rpl_towupper
|
||||
setlocale_messages
|
||||
setlocale_messages_null
|
||||
textdomain
|
||||
uc_is_alnum
|
||||
uc_is_alpha
|
||||
uc_is_blank
|
||||
uc_is_cntrl
|
||||
uc_is_digit
|
||||
uc_is_graph
|
||||
uc_is_lower
|
||||
uc_is_print
|
||||
uc_is_punct
|
||||
uc_is_space
|
||||
uc_is_upper
|
||||
uc_is_xdigit
|
||||
uc_tolower
|
||||
uc_width
|
||||
wcwidth
|
||||
wgetcwd
|
||||
|
BIN
extlib/gettext.win32/lib.i386/libgnuintl-8.dll
vendored
BIN
extlib/gettext.win32/lib.i386/libgnuintl-8.dll
vendored
Binary file not shown.
BIN
extlib/gettext.win32/lib.i386/libgnuintl-8.exp
vendored
BIN
extlib/gettext.win32/lib.i386/libgnuintl-8.exp
vendored
Binary file not shown.
BIN
extlib/gettext.win32/lib.i386/libgnuintl-8.lib
vendored
BIN
extlib/gettext.win32/lib.i386/libgnuintl-8.lib
vendored
Binary file not shown.
BIN
extlib/gettext.win32/lib.i386/libgnuintl.dll.a
vendored
BIN
extlib/gettext.win32/lib.i386/libgnuintl.dll.a
vendored
Binary file not shown.
2
extlib/googletest/CMakeLists.txt
vendored
2
extlib/googletest/CMakeLists.txt
vendored
@ -1,7 +1,7 @@
|
||||
# Note: CMake support is community-based. The maintainers do not use CMake
|
||||
# internally.
|
||||
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.5...3.10)
|
||||
|
||||
if (POLICY CMP0048)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
|
2
extlib/googletest/googlemock/CMakeLists.txt
vendored
2
extlib/googletest/googlemock/CMakeLists.txt
vendored
@ -36,7 +36,7 @@ endif()
|
||||
# as ${gmock_SOURCE_DIR} and to the root binary directory as
|
||||
# ${gmock_BINARY_DIR}.
|
||||
# Language "C" is required for find_package(Threads).
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.5...3.10)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
project(gmock VERSION ${GOOGLETEST_VERSION} LANGUAGES CXX C)
|
||||
|
||||
|
2
extlib/googletest/googletest/CMakeLists.txt
vendored
2
extlib/googletest/googletest/CMakeLists.txt
vendored
@ -46,7 +46,7 @@ endif()
|
||||
|
||||
# Project version:
|
||||
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.5...3.10)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
project(gtest VERSION ${GOOGLETEST_VERSION} LANGUAGES CXX C)
|
||||
|
||||
|
26
extlib/libpng/ANNOUNCE
vendored
26
extlib/libpng/ANNOUNCE
vendored
@ -1,5 +1,5 @@
|
||||
libpng 1.6.48 - April 30, 2025
|
||||
==============================
|
||||
libpng 1.6.49 - June 12, 2025
|
||||
=============================
|
||||
|
||||
This is a public release of libpng, intended for use in production code.
|
||||
|
||||
@ -9,13 +9,13 @@ Files available for download
|
||||
|
||||
Source files with LF line endings (for Unix/Linux):
|
||||
|
||||
* libpng-1.6.48.tar.xz (LZMA-compressed, recommended)
|
||||
* libpng-1.6.48.tar.gz (deflate-compressed)
|
||||
* libpng-1.6.49.tar.xz (LZMA-compressed, recommended)
|
||||
* libpng-1.6.49.tar.gz (deflate-compressed)
|
||||
|
||||
Source files with CRLF line endings (for Windows):
|
||||
|
||||
* lpng1648.7z (LZMA-compressed, recommended)
|
||||
* lpng1648.zip (deflate-compressed)
|
||||
* lpng1649.7z (LZMA-compressed, recommended)
|
||||
* lpng1649.zip (deflate-compressed)
|
||||
|
||||
Other information:
|
||||
|
||||
@ -25,17 +25,13 @@ Other information:
|
||||
* TRADEMARK.md
|
||||
|
||||
|
||||
Changes from version 1.6.47 to version 1.6.48
|
||||
Changes from version 1.6.48 to version 1.6.49
|
||||
---------------------------------------------
|
||||
|
||||
* Fixed the floating-point version of the mDCv setter `png_set_mDCv`.
|
||||
(Reported by Mohit Bakshi; fixed by John Bowler)
|
||||
* Added #error directives to discourage the inclusion of private
|
||||
libpng implementation header files in PNG-supporting applications.
|
||||
* Added the CMake build option `PNG_LIBCONF_HEADER`, to be used as an
|
||||
alternative to `DFA_XTRA`.
|
||||
* Removed the Travis CI configuration files, with heartfelt thanks for
|
||||
their generous support of our project over the past five years!
|
||||
* Added SIMD-optimized code for the RISC-V Vector Extension (RVV).
|
||||
(Contributed by Manfred Schlaegl, Dragos Tiselice and Filip Wasil)
|
||||
* Added various fixes and improvements to the build scripts and to
|
||||
the sample code.
|
||||
|
||||
|
||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
|
||||
|
6
extlib/libpng/AUTHORS
vendored
6
extlib/libpng/AUTHORS
vendored
@ -20,6 +20,7 @@ Authors, for copyright and licensing purposes.
|
||||
* Lucas Chollet
|
||||
* Magnus Holmgren
|
||||
* Mandar Sahastrabuddhe
|
||||
* Manfred Schlaegl
|
||||
* Mans Rullgard
|
||||
* Matt Sarett
|
||||
* Mike Klein
|
||||
@ -40,8 +41,9 @@ Authors, for copyright and licensing purposes.
|
||||
- Zixu Wang (王子旭)
|
||||
* Arm Holdings
|
||||
- Richard Townsend
|
||||
* Google Inc.
|
||||
* Google LLC
|
||||
- Dan Field
|
||||
- Dragoș Tiselice
|
||||
- Leon Scroggins III
|
||||
- Matt Sarett
|
||||
- Mike Klein
|
||||
@ -51,6 +53,8 @@ Authors, for copyright and licensing purposes.
|
||||
- GuXiWei (顾希伟)
|
||||
- JinBo (金波)
|
||||
- ZhangLixia (张利霞)
|
||||
* Samsung Group
|
||||
- Filip Wasil
|
||||
|
||||
The build projects, the build scripts, the test scripts, and other
|
||||
files in the "projects", "scripts" and "tests" directories, have
|
||||
|
6
extlib/libpng/CHANGES
vendored
6
extlib/libpng/CHANGES
vendored
@ -6261,6 +6261,12 @@ Version 1.6.48 [April 30, 2025]
|
||||
Removed the Travis CI configuration files, with heartfelt thanks for
|
||||
their generous support of our project over the past five years!
|
||||
|
||||
Version 1.6.49 [June 12, 2025]
|
||||
Added SIMD-optimized code for the RISC-V Vector Extension (RVV).
|
||||
(Contributed by Manfred Schlaegl, Dragos Tiselice and Filip Wasil)
|
||||
Added various fixes and improvements to the build scripts and to
|
||||
the sample code.
|
||||
|
||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
|
||||
Subscription is required; visit
|
||||
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||
|
287
extlib/libpng/CMakeLists.txt
vendored
287
extlib/libpng/CMakeLists.txt
vendored
@ -19,7 +19,7 @@
|
||||
|
||||
set(PNGLIB_MAJOR 1)
|
||||
set(PNGLIB_MINOR 6)
|
||||
set(PNGLIB_REVISION 48)
|
||||
set(PNGLIB_REVISION 49)
|
||||
set(PNGLIB_SUBREVISION 0)
|
||||
#set(PNGLIB_SUBREVISION "git")
|
||||
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_REVISION})
|
||||
@ -116,8 +116,7 @@ if(NOT PNG_EXECUTABLES)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Allow the users to configure various compilation options.
|
||||
option(PNG_DEBUG "Enable debug output" OFF)
|
||||
# Allow the users to switch on/off the use of hardware (SIMD) optimized code.
|
||||
option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations" ON)
|
||||
ENDIF(0) # rom-properties
|
||||
|
||||
@ -159,6 +158,7 @@ else()
|
||||
find_package(ZLIB REQUIRED)
|
||||
endif()
|
||||
|
||||
# Find the math library (where available).
|
||||
if(UNIX
|
||||
AND NOT (APPLE OR BEOS OR HAIKU)
|
||||
AND NOT EMSCRIPTEN)
|
||||
@ -172,6 +172,13 @@ else()
|
||||
# libm is not available or not needed.
|
||||
endif()
|
||||
|
||||
# Silence function deprecation warnings on the Windows compilers that might
|
||||
# use the MSVC Runtime library headers.
|
||||
if(WIN32 AND (CMAKE_C_COMPILER_ID MATCHES "MSVC|Intel|Clang"))
|
||||
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
||||
endif()
|
||||
|
||||
if(PNG_HARDWARE_OPTIMIZATIONS)
|
||||
|
||||
# Set definitions and sources for ARM.
|
||||
@ -360,6 +367,35 @@ if(PNG_HARDWARE_OPTIMIZATIONS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Set definitions and sources for RISC-V.
|
||||
if(PNG_TARGET_ARCHITECTURE MATCHES "^(riscv)")
|
||||
include(CheckCCompilerFlag)
|
||||
set(PNG_RISCV_RVV_POSSIBLE_VALUES check on off)
|
||||
set(PNG_RISCV_RVV "off"
|
||||
CACHE STRING "Enable RISC-V Vector optimizations: check|on|off; off is default")
|
||||
set_property(CACHE PNG_RISCV_RVV
|
||||
PROPERTY STRINGS ${PNG_RISCV_RVV_POSSIBLE_VALUES})
|
||||
list(FIND PNG_RISCV_RVV_POSSIBLE_VALUES ${PNG_RISCV_RVV} index)
|
||||
if(index EQUAL -1)
|
||||
message(FATAL_ERROR "PNG_RISCV_RVV must be one of [${PNG_RISCV_RVV_POSSIBLE_VALUES}]")
|
||||
elseif(NOT PNG_RISCV_RVV STREQUAL "off")
|
||||
check_c_compiler_flag("-march=rv64gv1p0" COMPILER_SUPPORTS_RVV)
|
||||
if(NOT COMPILER_SUPPORTS_RVV)
|
||||
message(FATAL_ERROR "Compiler does not support -march=rv64gv1p0 option")
|
||||
endif()
|
||||
set(libpng_riscv_sources
|
||||
riscv/filter_rvv_intrinsics.c
|
||||
riscv/riscv_init.c)
|
||||
if(PNG_RISCV_RVV STREQUAL "on")
|
||||
add_definitions(-DPNG_RISCV_RVV_OPT=2)
|
||||
elseif(PNG_RISCV_RVV STREQUAL "check")
|
||||
add_definitions(-DPNG_RISCV_RVV_CHECK_SUPPORTED)
|
||||
endif()
|
||||
else()
|
||||
add_definitions(-DPNG_RISCV_RVV_OPT=0)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
else(PNG_HARDWARE_OPTIMIZATIONS)
|
||||
|
||||
# Set definitions and sources for ARM.
|
||||
@ -387,6 +423,11 @@ else(PNG_HARDWARE_OPTIMIZATIONS)
|
||||
add_definitions(-DPNG_LOONGARCH_LSX_OPT=0)
|
||||
endif()
|
||||
|
||||
# Set definitions and sources for RISC-V.
|
||||
if(PNG_TARGET_ARCHITECTURE MATCHES "^(riscv)")
|
||||
add_definitions(-DPNG_RISCV_RVV_OPT=0)
|
||||
endif()
|
||||
|
||||
endif(PNG_HARDWARE_OPTIMIZATIONS)
|
||||
|
||||
option(ld-version-script "Enable linker version script" ON)
|
||||
@ -442,13 +483,13 @@ if(PNG_LIBCONF_HEADER STREQUAL "")
|
||||
endif()
|
||||
|
||||
# Include the internal module PNGCheckLibconf.cmake
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/PNGCheckLibconf.cmake)
|
||||
include("${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/PNGCheckLibconf.cmake")
|
||||
|
||||
if(NOT PNG_LIBCONF_HEADER STREQUAL "")
|
||||
# Configure libpng with the user-defined pnglibconf.h file.
|
||||
png_check_libconf(HEADER "${PNG_LIBCONF_HEADER}")
|
||||
configure_file("${PNG_LIBCONF_HEADER}"
|
||||
${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h"
|
||||
@ONLY)
|
||||
add_custom_target(png_genfiles)
|
||||
elseif(NOT AWK)
|
||||
@ -456,47 +497,43 @@ elseif(NOT AWK)
|
||||
# Configure libpng with pnglibconf.h.prebuilt.
|
||||
png_check_libconf(HEADER "${PNG_LIBCONF_HEADER_PREBUILT}")
|
||||
configure_file("${PNG_LIBCONF_HEADER_PREBUILT}"
|
||||
${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h"
|
||||
@ONLY)
|
||||
add_custom_target(png_genfiles)
|
||||
else()
|
||||
png_check_libconf(DFA_XTRA "${DFA_XTRA}")
|
||||
|
||||
# Include the internal module PNGGenConfig.cmake
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/PNGGenConfig.cmake)
|
||||
include("${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/PNGGenConfig.cmake")
|
||||
|
||||
# Work around a limitation of various Windows AWK programs that are
|
||||
# unable to process CRLF-terminated AWK scripts.
|
||||
# Copy these AWK scripts to a temporary location, converting their
|
||||
# line endings from Windows (CRLF) to Unix (LF) at the destination.
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/checksym.awk
|
||||
${CMAKE_CURRENT_BINARY_DIR}/scripts/checksym.awk
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/checksym.awk"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/checksym.awk"
|
||||
@ONLY
|
||||
NEWLINE_STYLE LF)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/options.awk
|
||||
${CMAKE_CURRENT_BINARY_DIR}/scripts/options.awk
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/options.awk"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/options.awk"
|
||||
@ONLY
|
||||
NEWLINE_STYLE LF)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/dfn.awk
|
||||
${CMAKE_CURRENT_BINARY_DIR}/scripts/dfn.awk
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/dfn.awk"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/dfn.awk"
|
||||
@ONLY
|
||||
NEWLINE_STYLE LF)
|
||||
|
||||
# Generate scripts/pnglibconf.h
|
||||
generate_source(OUTPUT "scripts/pnglibconf.c"
|
||||
generate_source(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/pnglibconf.c"
|
||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.dfa"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/options.awk"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h")
|
||||
add_custom_target(png_scripts_pnglibconf_c
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/scripts/pnglibconf.c")
|
||||
|
||||
# Generate pnglibconf.c
|
||||
generate_source(OUTPUT "pnglibconf.c"
|
||||
generate_source(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c"
|
||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.dfa"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/options.awk"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h")
|
||||
add_custom_target(pnglibconf_c
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c")
|
||||
|
||||
if(PNG_PREFIX)
|
||||
set(PNGLIBCONF_H_EXTRA_DEPENDS
|
||||
@ -507,85 +544,53 @@ else()
|
||||
endif()
|
||||
|
||||
generate_out(INPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out"
|
||||
DEPENDS pnglibconf_c)
|
||||
add_custom_target(pnglibconf_out
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out")
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out")
|
||||
|
||||
# Generate pnglibconf.h
|
||||
generate_source(OUTPUT "pnglibconf.h"
|
||||
generate_source(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h"
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out"
|
||||
pnglibconf_out
|
||||
${PNGLIBCONF_H_EXTRA_DEPENDS})
|
||||
add_custom_target(pnglibconf_h
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h")
|
||||
|
||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/intprefix.c"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out"
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h"
|
||||
pnglibconf_h)
|
||||
add_custom_target(png_scripts_intprefix_out
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out")
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h")
|
||||
|
||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/prefix.c"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out"
|
||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out"
|
||||
pnglibconf_out)
|
||||
add_custom_target(png_scripts_prefix_out
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out")
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out")
|
||||
|
||||
# Generate pngprefix.h
|
||||
generate_source(OUTPUT "pngprefix.h"
|
||||
generate_source(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h"
|
||||
DEPENDS ${PNGPREFIX_H_EXTRA_DEPENDS})
|
||||
add_custom_target(pngprefix_h
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h")
|
||||
|
||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/sym.c"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out"
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h"
|
||||
pnglibconf_h)
|
||||
add_custom_target(png_scripts_sym_out
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out")
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h")
|
||||
|
||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/symbols.c"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out"
|
||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt")
|
||||
add_custom_target(png_scripts_symbols_out
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out")
|
||||
|
||||
generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/vers.c"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out"
|
||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h"
|
||||
pnglibconf_h)
|
||||
add_custom_target(png_scripts_vers_out
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out")
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h")
|
||||
|
||||
generate_chk(INPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk"
|
||||
DEPENDS png_scripts_symbols_out
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/checksym.awk"
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/scripts/checksym.awk"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/symbols.def")
|
||||
|
||||
add_custom_target(png_scripts_symbols_chk
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk")
|
||||
|
||||
generate_copy(INPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym"
|
||||
DEPENDS png_scripts_sym_out)
|
||||
generate_copy(INPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers"
|
||||
DEPENDS png_scripts_vers_out)
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym")
|
||||
|
||||
add_custom_target(png_genvers
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers")
|
||||
add_custom_target(png_gensym
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym")
|
||||
generate_copy(INPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out"
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers")
|
||||
|
||||
add_custom_target(png_genprebuilt
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
@ -596,31 +601,18 @@ else()
|
||||
# A single target handles generation of all generated files.
|
||||
add_custom_target(png_genfiles
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym"
|
||||
png_gensym
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/libpng.vers"
|
||||
png_genvers
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c"
|
||||
pnglibconf_c
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h"
|
||||
pnglibconf_h
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out"
|
||||
pnglibconf_out
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h"
|
||||
pngprefix_h
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out"
|
||||
png_scripts_intprefix_out
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/pnglibconf.c"
|
||||
png_scripts_pnglibconf_c
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out"
|
||||
png_scripts_prefix_out
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out"
|
||||
png_scripts_sym_out
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk"
|
||||
png_scripts_symbols_chk
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out"
|
||||
png_scripts_symbols_out
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out"
|
||||
png_scripts_vers_out)
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out")
|
||||
endif()
|
||||
|
||||
# List the source code files.
|
||||
@ -661,7 +653,9 @@ set(libpng_sources
|
||||
${libpng_mips_sources}
|
||||
${libpng_powerpc_sources}
|
||||
${libpng_loongarch_sources}
|
||||
${libpng_riscv_sources}
|
||||
)
|
||||
|
||||
set(pngtest_sources
|
||||
pngtest.c
|
||||
)
|
||||
@ -684,10 +678,13 @@ set(png_fix_itxt_sources
|
||||
contrib/tools/png-fix-itxt.c
|
||||
)
|
||||
|
||||
if(MSVC OR (WIN32 AND (CMAKE_C_COMPILER_ID MATCHES "Clang")))
|
||||
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
||||
endif()
|
||||
# rom-properties: FIXME: "/guard:cf" causes png_longjmp() to crash
|
||||
# in MSVC 2022 Release builds on Windows 10.
|
||||
IF(MSVC)
|
||||
FOREACH(_var CMAKE_C_FLAGS CMAKE_CXX_FLAGS CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS)
|
||||
STRING(REPLACE "/guard:cf" "" ${_var} "${${${_var}}}")
|
||||
ENDFOREACH(_var)
|
||||
ENDIF(MSVC)
|
||||
|
||||
# rom-properties: Add -DPNG_DEBUG=0 in debug builds.
|
||||
IF(0)
|
||||
@ -767,12 +764,12 @@ if(PNG_SHARED)
|
||||
)
|
||||
endif()
|
||||
target_include_directories(png_shared
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
||||
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>")
|
||||
target_include_directories(png_shared
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
|
||||
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>")
|
||||
target_include_directories(png_shared
|
||||
SYSTEM
|
||||
INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/libpng${PNGLIB_ABI_VERSION}>)
|
||||
INTERFACE "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/libpng${PNGLIB_ABI_VERSION}>")
|
||||
# rom-properties: ZLIB::ZLIB -> ${ZLIB_LIBRARY}
|
||||
target_link_libraries(png_shared
|
||||
PUBLIC ${ZLIB_LIBRARY} ${M_LIBRARY})
|
||||
@ -791,12 +788,12 @@ if(PNG_STATIC)
|
||||
PROPERTIES OUTPUT_NAME "${PNG_STATIC_OUTPUT_NAME}"
|
||||
DEBUG_POSTFIX "${PNG_DEBUG_POSTFIX}")
|
||||
target_include_directories(png_static
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
||||
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>")
|
||||
target_include_directories(png_static
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
|
||||
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>")
|
||||
target_include_directories(png_static
|
||||
SYSTEM
|
||||
INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/libpng${PNGLIB_ABI_VERSION}>)
|
||||
INTERFACE "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/libpng${PNGLIB_ABI_VERSION}>")
|
||||
# rom-properties: ZLIB::ZLIB -> ${ZLIB_LIBRARY}
|
||||
target_link_libraries(png_static
|
||||
PUBLIC ${ZLIB_LIBRARY} ${M_LIBRARY})
|
||||
@ -827,12 +824,12 @@ if(PNG_FRAMEWORK)
|
||||
set_target_properties(png_framework
|
||||
PROPERTIES DEFINE_SYMBOL "")
|
||||
target_include_directories(png_framework
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
||||
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>")
|
||||
target_include_directories(png_framework
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
|
||||
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>")
|
||||
target_include_directories(png_framework
|
||||
SYSTEM
|
||||
INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/libpng${PNGLIB_ABI_VERSION}>)
|
||||
INTERFACE "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/libpng${PNGLIB_ABI_VERSION}>")
|
||||
# rom-properties: ZLIB::ZLIB -> ${ZLIB_LIBRARY}
|
||||
target_link_libraries(png_framework
|
||||
PUBLIC ${ZLIB_LIBRARY} ${M_LIBRARY})
|
||||
@ -848,7 +845,7 @@ if(PNG_TESTS AND PNG_SHARED)
|
||||
enable_testing()
|
||||
|
||||
# Include the internal module PNGTest.cmake
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/PNGTest.cmake)
|
||||
include("${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/PNGTest.cmake")
|
||||
|
||||
# Find test PNG files by globbing, but sort lists to ensure
|
||||
# consistency between different filesystems.
|
||||
@ -1059,12 +1056,14 @@ function(create_symlink DEST_FILE)
|
||||
if(CMAKE_HOST_WIN32 AND NOT CYGWIN)
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}"
|
||||
-E copy_if_different
|
||||
${_SYM_FILE} ${DEST_FILE}
|
||||
"${_SYM_FILE}"
|
||||
"${DEST_FILE}"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
else()
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}"
|
||||
-E create_symlink
|
||||
${_SYM_FILE} ${DEST_FILE}
|
||||
"${_SYM_FILE}"
|
||||
"${DEST_FILE}"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
endif()
|
||||
endif()
|
||||
@ -1078,28 +1077,28 @@ function(create_symlink DEST_FILE)
|
||||
POST_BUILD
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-E copy_if_different
|
||||
$<TARGET_LINKER_FILE_DIR:${_SYM_TARGET}>/$<TARGET_LINKER_FILE_NAME:${_SYM_TARGET}>
|
||||
$<TARGET_LINKER_FILE_DIR:${_SYM_TARGET}>/${DEST_FILE})
|
||||
"$<TARGET_LINKER_FILE_DIR:${_SYM_TARGET}>/$<TARGET_LINKER_FILE_NAME:${_SYM_TARGET}>"
|
||||
"$<TARGET_LINKER_FILE_DIR:${_SYM_TARGET}>/${DEST_FILE}")
|
||||
else()
|
||||
add_custom_command(TARGET ${_SYM_TARGET}
|
||||
POST_BUILD
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-E create_symlink
|
||||
$<TARGET_LINKER_FILE_NAME:${_SYM_TARGET}>
|
||||
$<TARGET_LINKER_FILE_DIR:${_SYM_TARGET}>/${DEST_FILE})
|
||||
"$<TARGET_LINKER_FILE_NAME:${_SYM_TARGET}>"
|
||||
"$<TARGET_LINKER_FILE_DIR:${_SYM_TARGET}>/${DEST_FILE}")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Create source generation scripts.
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/genchk.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/scripts/cmake/genchk.cmake
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/genchk.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/cmake/genchk.cmake"
|
||||
@ONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/genout.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/scripts/cmake/genout.cmake
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/genout.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/cmake/genout.cmake"
|
||||
@ONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/gensrc.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/scripts/cmake/gensrc.cmake
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/gensrc.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/scripts/cmake/gensrc.cmake"
|
||||
@ONLY)
|
||||
|
||||
# libpng is a library so default to 'lib'
|
||||
@ -1112,17 +1111,17 @@ endif()
|
||||
# Only do this on Windows for Cygwin - the files don't make much sense
|
||||
# outside of a UNIX look-alike.
|
||||
if(NOT WIN32 OR CYGWIN OR MINGW)
|
||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
|
||||
set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
|
||||
set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
|
||||
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
||||
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
|
||||
set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}")
|
||||
set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
|
||||
set(LIBS "-lz -lm")
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc"
|
||||
@ONLY)
|
||||
create_symlink(libpng.pc FILE libpng${PNGLIB_ABI_VERSION}.pc)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}-config
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}-config"
|
||||
@ONLY)
|
||||
create_symlink(libpng-config FILE libpng${PNGLIB_ABI_VERSION}-config)
|
||||
endif()
|
||||
@ -1138,10 +1137,10 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
||||
# - Disabled the export rule
|
||||
install(TARGETS ${PNG_LIBRARY_TARGETS}
|
||||
#EXPORT libpng
|
||||
RUNTIME DESTINATION ${INSTALL_BIN_DIR}
|
||||
#LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
#ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
FRAMEWORK DESTINATION ${INSTALL_LIB_DIR})
|
||||
RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
|
||||
#LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
#ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
FRAMEWORK DESTINATION "${INSTALL_LIB_DIR}")
|
||||
|
||||
IF(INSTALL_DEBUG AND PNG_SHARED)
|
||||
# FIXME: Generator expression $<TARGET_PROPERTY:${_target},PDB> didn't work with CPack-3.6.1.
|
||||
@ -1166,16 +1165,16 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
||||
# Create a symlink for libpng.dll.a => libpng16.dll.a on Cygwin
|
||||
if(NOT WIN32 OR CYGWIN OR MINGW)
|
||||
create_symlink(libpng${CMAKE_SHARED_LIBRARY_SUFFIX} TARGET png_shared)
|
||||
install(FILES $<TARGET_LINKER_FILE_DIR:png_shared>/libpng${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES "$<TARGET_LINKER_FILE_DIR:png_shared>/libpng${CMAKE_SHARED_LIBRARY_SUFFIX}"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(PNG_STATIC)
|
||||
if(NOT WIN32 OR CYGWIN OR MINGW)
|
||||
create_symlink(libpng${CMAKE_STATIC_LIBRARY_SUFFIX} TARGET png_static)
|
||||
install(FILES $<TARGET_LINKER_FILE_DIR:png_static>/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES "$<TARGET_LINKER_FILE_DIR:png_static>/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
endif()
|
||||
ENDIF(0)
|
||||
@ -1183,40 +1182,40 @@ endif()
|
||||
|
||||
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL)
|
||||
install(FILES ${libpng_public_hdrs}
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
install(FILES ${libpng_public_hdrs}
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libpng${PNGLIB_ABI_VERSION})
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libpng${PNGLIB_ABI_VERSION}")
|
||||
endif()
|
||||
if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL)
|
||||
if(NOT WIN32 OR CYGWIN OR MINGW)
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}-config
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/libpng-config"
|
||||
DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}-config"
|
||||
DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT SKIP_INSTALL_PROGRAMS AND NOT SKIP_INSTALL_ALL)
|
||||
install(TARGETS ${PNG_BIN_TARGETS}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL)
|
||||
# Install the man pages.
|
||||
install(FILES libpng.3 libpngpf.3
|
||||
DESTINATION ${CMAKE_INSTALL_MANDIR}/man3)
|
||||
DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
|
||||
install(FILES png.5
|
||||
DESTINATION ${CMAKE_INSTALL_MANDIR}/man5)
|
||||
DESTINATION "${CMAKE_INSTALL_MANDIR}/man5")
|
||||
# Install the pkg-config files.
|
||||
if(NOT CMAKE_HOST_WIN32 OR CYGWIN OR MINGW)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}-config
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libpng.pc"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/libpng-config"
|
||||
DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}-config"
|
||||
DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -1225,7 +1224,7 @@ endif()
|
||||
IF(0)
|
||||
if(NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL)
|
||||
install(EXPORT libpng
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/libpng
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/libpng"
|
||||
FILE libpng${PNGLIB_ABI_VERSION}.cmake)
|
||||
endif()
|
||||
ENDIF(0) # rom-properties
|
||||
@ -1234,10 +1233,10 @@ ENDIF(0) # rom-properties
|
||||
if(NOT SKIP_INSTALL_CONFIG_FILE AND NOT SKIP_INSTALL_ALL)
|
||||
install(TARGETS ${PNG_LIBRARY_TARGETS}
|
||||
EXPORT PNGTargets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
FRAMEWORK DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
write_basic_package_version_file(PNGConfigVersion.cmake
|
||||
@ -1247,11 +1246,11 @@ if(NOT SKIP_INSTALL_CONFIG_FILE AND NOT SKIP_INSTALL_ALL)
|
||||
install(EXPORT PNGTargets
|
||||
FILE PNGTargets.cmake
|
||||
NAMESPACE PNG::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/PNG)
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/PNG")
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/PNGConfig.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/PNGConfigVersion.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/PNG)
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/PNGConfig.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/PNGConfigVersion.cmake"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/PNG")
|
||||
endif()
|
||||
|
||||
# TODO: Create MSVC import lib for MinGW-compiled shared lib.
|
||||
|
10
extlib/libpng/INSTALL
vendored
10
extlib/libpng/INSTALL
vendored
@ -136,7 +136,7 @@ Your directory structure should look like this:
|
||||
depcomp, install-sh, mkinstalldirs, test-pngtest.sh, etc.
|
||||
contrib
|
||||
arm-neon, conftest, examples, gregbook, libtests, pngminim,
|
||||
pngminus, pngsuite, tools, visupng
|
||||
pngminus, pngsuite, tools, visupng, riscv-rvv
|
||||
projects
|
||||
owatcom, visualc71, vstudio
|
||||
scripts
|
||||
@ -289,6 +289,7 @@ such as one of
|
||||
--enable-mips-msa=yes
|
||||
--enable-intel-sse=yes
|
||||
--enable-powerpc-vsx=yes
|
||||
--enable-riscv-rvv=yes
|
||||
|
||||
or enable them all at once with
|
||||
|
||||
@ -301,6 +302,7 @@ or more of
|
||||
CPPFLAGS += "-DPNG_MIPS_MSA"
|
||||
CPPFLAGS += "-DPNG_INTEL_SSE"
|
||||
CPPFLAGS += "-DPNG_POWERPC_VSX"
|
||||
CPPFLAGS += "-DPNG_RISCV_RVV"
|
||||
|
||||
See for example scripts/makefile.linux-opt
|
||||
|
||||
@ -317,13 +319,15 @@ to disable a particular one,
|
||||
or via compiler-command options such as
|
||||
|
||||
CPPFLAGS += "-DPNG_ARM_NEON_OPT=0, -DPNG_MIPS_MSA_OPT=0,
|
||||
-DPNG_INTEL_SSE_OPT=0, -DPNG_POWERPC_VSX_OPT=0"
|
||||
-DPNG_INTEL_SSE_OPT=0, -DPNG_POWERPC_VSX_OPT=0,
|
||||
-DPNG_RISCV_RVV_OPT=0"
|
||||
|
||||
If you are using cmake, hardware optimizations are "on"
|
||||
by default. To disable them, use
|
||||
|
||||
cmake . -DPNG_ARM_NEON=no -DPNG_INTEL_SSE=no \
|
||||
-DPNG_MIPS_MSA=no -DPNG_POWERPC_VSX=no
|
||||
-DPNG_MIPS_MSA=no -DPNG_POWERPC_VSX=no \
|
||||
-DPNG_RISCV_RVV=no
|
||||
|
||||
or disable them all at once with
|
||||
|
||||
|
4
extlib/libpng/README
vendored
4
extlib/libpng/README
vendored
@ -1,4 +1,4 @@
|
||||
README for libpng version 1.6.48
|
||||
README for libpng version 1.6.49
|
||||
================================
|
||||
|
||||
See the note about version numbers near the top of `png.h`.
|
||||
@ -147,6 +147,7 @@ Files included in this distribution
|
||||
loongarch/ => Optimized code for LoongArch LSX
|
||||
mips/ => Optimized code for MIPS MSA and MIPS MMI
|
||||
powerpc/ => Optimized code for PowerPC VSX
|
||||
riscv/ => Optimized code for the RISC-V platform
|
||||
ci/ => Scripts for continuous integration
|
||||
contrib/ => External contributions
|
||||
arm-neon/ => Optimized code for the ARM-NEON platform
|
||||
@ -162,6 +163,7 @@ Files included in this distribution
|
||||
programs demonstrating the use of pngusr.dfa
|
||||
pngminus/ => Simple pnm2png and png2pnm programs
|
||||
pngsuite/ => Test images
|
||||
riscv-rvv/ => Optimized code for the RISC-V Vector platform
|
||||
testpngs/ => Test images
|
||||
tools/ => Various tools
|
||||
visupng/ => VisualPng, a Windows viewer for PNG images
|
||||
|
9
extlib/libpng/config.h.in
vendored
9
extlib/libpng/config.h.in
vendored
@ -108,6 +108,15 @@
|
||||
/* Enable POWERPC VSX optimizations */
|
||||
#undef PNG_POWERPC_VSX_OPT
|
||||
|
||||
/* Turn on RISC-V Vector optimizations at run-time */
|
||||
#undef PNG_RISCV_RVV_API_SUPPORTED
|
||||
|
||||
/* Check for RISC-V Vector support at run-time */
|
||||
#undef PNG_RISCV_RVV_CHECK_SUPPORTED
|
||||
|
||||
/* Enable RISCV RVV optimizations */
|
||||
#undef PNG_RISCV_RVV_OPT
|
||||
|
||||
/* Define to 1 if all of the C89 standard headers exist (not just the ones
|
||||
required in a freestanding environment). This macro is provided for
|
||||
backward compatibility; new code need not use it. */
|
||||
|
85
extlib/libpng/contrib/riscv-rvv/README
vendored
Normal file
85
extlib/libpng/contrib/riscv-rvv/README
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
OPERATING SYSTEM SPECIFIC RISC-V RVV DETECTION
|
||||
----------------------------------------------
|
||||
|
||||
Detection of the ability to execute RISC-V Vector on a RISC-V processor
|
||||
requires operating system support. (The information is not available in user
|
||||
mode.)
|
||||
|
||||
HOW TO USE THIS
|
||||
---------------
|
||||
|
||||
This directory contains C code fragments that can be included in
|
||||
riscv/riscv_init.c by setting the macro PNG_RISCV_RVV_FILE to the file name
|
||||
in "" or <> at build time. This setting is not recorded in pnglibconf.h and
|
||||
can be changed simply by rebuilding riscv/riscv_init.o with the required macro
|
||||
definition.
|
||||
|
||||
For any of this code to be used the RISC-V Vector code must be enabled and run
|
||||
time checks must be supported. I.e.:
|
||||
|
||||
#if PNG_RISCV_RVV_OPT > 0
|
||||
#ifdef PNG_RISCV_RVV_CHECK_SUPPORTED
|
||||
|
||||
This is done in a 'configure' build by passing configure the argument:
|
||||
|
||||
--enable-riscv-rvv=check
|
||||
|
||||
Apart from the basic Linux implementation in contrib/riscv-rvv/linux.c this
|
||||
code is unsupported. That means that it is not even compiled on a regular
|
||||
basis and may be broken in any given minor release.
|
||||
|
||||
FILE FORMAT
|
||||
-----------
|
||||
|
||||
Each file documents its testing status as of the last time it was tested (which
|
||||
may have been a long time ago):
|
||||
|
||||
STATUS: one of:
|
||||
SUPPORTED: This indicates that the file is included in the regularly
|
||||
performed test builds and bugs are fixed when discovered.
|
||||
COMPILED: This indicates that the code did compile at least once. See the
|
||||
more detailed description for the extent to which the result was
|
||||
successful.
|
||||
TESTED: This means the code was fully compiled into the libpng test programs
|
||||
and these were run at least once.
|
||||
|
||||
BUG REPORTS: an email address to which to send reports of problems
|
||||
|
||||
The file is a fragment of C code. It should not define any 'extern' symbols;
|
||||
everything should be static. It must define the function:
|
||||
|
||||
static int png_have_rvv(png_structp png_ptr);
|
||||
|
||||
That function must return 1 if RISC-V Vector instructions are supported, 0 if
|
||||
not. It must not execute png_error unless it detects a bug. A png_error will
|
||||
prevent the reading of the PNG and in the future, writing too.
|
||||
|
||||
BUG REPORTS
|
||||
-----------
|
||||
|
||||
If you mail a bug report for any file that is not SUPPORTED there may only be
|
||||
limited response. Consider fixing it and sending a patch to fix the problem -
|
||||
this is more likely to result in action.
|
||||
|
||||
CONTRIBUTIONS
|
||||
-------------
|
||||
|
||||
You may send contributions of new implementations to
|
||||
png-mng-implement@sourceforge.net. Please write code in strict C90 C where
|
||||
possible. Obviously OS dependencies are to be expected. If you submit code you
|
||||
must have the authors permission and it must have a license that is acceptable
|
||||
to the current maintainer; in particular that license must permit modification
|
||||
and redistribution.
|
||||
|
||||
Please try to make the contribution a single file and give the file a clear and
|
||||
unambiguous name that identifies the target OS. If multiple files really are
|
||||
required put them all in a sub-directory.
|
||||
|
||||
You must also be prepared to handle bug reports from users of the code, either
|
||||
by joining the png-mng-implement mailing list or by providing an email for the
|
||||
"BUG REPORTS" entry or both. Please make sure that the header of the file
|
||||
contains the STATUS and BUG REPORTS fields as above.
|
||||
|
||||
Please list the OS requirements as precisely as possible. Ideally you should
|
||||
also list the environment in which the code has been tested and certainly list
|
||||
any environments where you suspect it might not work.
|
36
extlib/libpng/contrib/riscv-rvv/linux.c
vendored
Normal file
36
extlib/libpng/contrib/riscv-rvv/linux.c
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
/* contrib/riscv-rvv/linux.c
|
||||
*
|
||||
* Copyright (c) 2023 Google LLC
|
||||
* Written by Dragoș Tiselice <dtiselice@google.com>, May 2023.
|
||||
*
|
||||
* This code is released under the libpng license.
|
||||
* For conditions of distribution and use, see the disclaimer
|
||||
* and license in png.h
|
||||
*
|
||||
* SEE contrib/riscv-rvv/README before reporting bugs
|
||||
*
|
||||
* STATUS: SUPPORTED
|
||||
* BUG REPORTS: png-mng-implement@sourceforge.net
|
||||
*
|
||||
* png_have_rvv implemented for Linux by looking for COMPAT_HWCAP_ISA_V
|
||||
* via hardware capabilites API.
|
||||
*
|
||||
* This code is strict ANSI-C and is probably moderately portable; it does
|
||||
* however use <stdio.h> and it assumes that /proc/cpuinfo is never localized.
|
||||
*/
|
||||
|
||||
#if defined(__linux__)
|
||||
#include <asm/hwcap.h>
|
||||
#include <sys/auxv.h>
|
||||
#endif
|
||||
|
||||
static int
|
||||
png_have_rvv(png_structp png_ptr) {
|
||||
#if defined(__linux__)
|
||||
return getauxval (AT_HWCAP) & COMPAT_HWCAP_ISA_V ? 1 : 0;
|
||||
#else
|
||||
#pragma message( \
|
||||
"warning: RISC-V Vector not supported for this platform")
|
||||
return 0;
|
||||
#endif
|
||||
}
|
2
extlib/libpng/libpng-manual.txt
vendored
2
extlib/libpng/libpng-manual.txt
vendored
@ -9,7 +9,7 @@ libpng-manual.txt - A description on how to use and modify libpng
|
||||
|
||||
Based on:
|
||||
|
||||
libpng version 1.6.36, December 2018, through 1.6.48 - April 2025
|
||||
libpng version 1.6.36, December 2018, through 1.6.49 - June 2025
|
||||
Updated and distributed by Cosmin Truta
|
||||
Copyright (c) 2018-2025 Cosmin Truta
|
||||
|
||||
|
6
extlib/libpng/libpng.3
vendored
6
extlib/libpng/libpng.3
vendored
@ -1,6 +1,6 @@
|
||||
.TH LIBPNG 3 "April 30, 2025"
|
||||
.TH LIBPNG 3 "June 12, 2025"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.48
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.49
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fB#include <png.h>\fP
|
||||
@ -528,7 +528,7 @@ libpng-manual.txt - A description on how to use and modify libpng
|
||||
|
||||
Based on:
|
||||
|
||||
libpng version 1.6.36, December 2018, through 1.6.48 - April 2025
|
||||
libpng version 1.6.36, December 2018, through 1.6.49 - June 2025
|
||||
Updated and distributed by Cosmin Truta
|
||||
Copyright (c) 2018-2025 Cosmin Truta
|
||||
|
||||
|
4
extlib/libpng/libpngpf.3
vendored
4
extlib/libpng/libpngpf.3
vendored
@ -1,6 +1,6 @@
|
||||
.TH LIBPNGPF 3 "April 30, 2025"
|
||||
.TH LIBPNGPF 3 "June 12, 2025"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.48
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.49
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fB#include "pngpriv.h"\fP
|
||||
|
6
extlib/libpng/png.5
vendored
6
extlib/libpng/png.5
vendored
@ -1,4 +1,4 @@
|
||||
.TH PNG 5 "April 30, 2025"
|
||||
.TH PNG 5 "June 12, 2025"
|
||||
.SH NAME
|
||||
png \- Portable Network Graphics (PNG) format
|
||||
|
||||
@ -20,10 +20,10 @@ matching on heterogeneous platforms.
|
||||
.SH "SEE ALSO"
|
||||
.BR "libpng"(3), " zlib"(3), " deflate"(5), " " and " zlib"(5)
|
||||
.LP
|
||||
PNG Specification (Third Edition) Candidate Recommendation, March 2025:
|
||||
PNG Specification (Third Edition) Proposed Recommendation, May 2025:
|
||||
.IP
|
||||
.br
|
||||
https://www.w3.org/TR/2025/CR-png-3-20250313/
|
||||
https://www.w3.org/TR/2025/PR-png-3-20250515/
|
||||
.LP
|
||||
PNG Specification (Second Edition), November 2003:
|
||||
.IP
|
||||
|
4
extlib/libpng/png.c
vendored
4
extlib/libpng/png.c
vendored
@ -13,7 +13,7 @@
|
||||
#include "pngpriv.h"
|
||||
|
||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||
typedef png_libpng_version_1_6_48 Your_png_h_is_not_version_1_6_48;
|
||||
typedef png_libpng_version_1_6_49 Your_png_h_is_not_version_1_6_49;
|
||||
|
||||
/* Sanity check the chunks definitions - PNG_KNOWN_CHUNKS from pngpriv.h and the
|
||||
* corresponding macro definitions. This causes a compile time failure if
|
||||
@ -815,7 +815,7 @@ png_get_copyright(png_const_structrp png_ptr)
|
||||
return PNG_STRING_COPYRIGHT
|
||||
#else
|
||||
return PNG_STRING_NEWLINE \
|
||||
"libpng version 1.6.48" PNG_STRING_NEWLINE \
|
||||
"libpng version 1.6.49" PNG_STRING_NEWLINE \
|
||||
"Copyright (c) 2018-2025 Cosmin Truta" PNG_STRING_NEWLINE \
|
||||
"Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
|
||||
PNG_STRING_NEWLINE \
|
||||
|
67
extlib/libpng/png.h
vendored
67
extlib/libpng/png.h
vendored
@ -1,6 +1,6 @@
|
||||
/* png.h - header file for PNG reference library
|
||||
*
|
||||
* libpng version 1.6.48
|
||||
* libpng version 1.6.49
|
||||
*
|
||||
* Copyright (c) 2018-2025 Cosmin Truta
|
||||
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
|
||||
@ -14,7 +14,7 @@
|
||||
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||
* libpng versions 0.97, January 1998, through 1.6.35, July 2018:
|
||||
* Glenn Randers-Pehrson
|
||||
* libpng versions 1.6.36, December 2018, through 1.6.48, April 2025:
|
||||
* libpng versions 1.6.36, December 2018, through 1.6.49, June 2025:
|
||||
* Cosmin Truta
|
||||
* See also "Contributing Authors", below.
|
||||
*/
|
||||
@ -238,7 +238,7 @@
|
||||
* ...
|
||||
* 1.5.30 15 10530 15.so.15.30[.0]
|
||||
* ...
|
||||
* 1.6.48 16 10648 16.so.16.48[.0]
|
||||
* 1.6.49 16 10649 16.so.16.49[.0]
|
||||
*
|
||||
* Henceforth the source version will match the shared-library major and
|
||||
* minor numbers; the shared-library major version number will be used for
|
||||
@ -274,7 +274,7 @@
|
||||
*/
|
||||
|
||||
/* Version information for png.h - this should match the version in png.c */
|
||||
#define PNG_LIBPNG_VER_STRING "1.6.48"
|
||||
#define PNG_LIBPNG_VER_STRING "1.6.49"
|
||||
#define PNG_HEADER_VERSION_STRING " libpng version " PNG_LIBPNG_VER_STRING "\n"
|
||||
|
||||
/* The versions of shared library builds should stay in sync, going forward */
|
||||
@ -285,7 +285,7 @@
|
||||
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
||||
#define PNG_LIBPNG_VER_MAJOR 1
|
||||
#define PNG_LIBPNG_VER_MINOR 6
|
||||
#define PNG_LIBPNG_VER_RELEASE 48
|
||||
#define PNG_LIBPNG_VER_RELEASE 49
|
||||
|
||||
/* This should be zero for a public release, or non-zero for a
|
||||
* development version.
|
||||
@ -316,7 +316,7 @@
|
||||
* From version 1.0.1 it is:
|
||||
* XXYYZZ, where XX=major, YY=minor, ZZ=release
|
||||
*/
|
||||
#define PNG_LIBPNG_VER 10648 /* 1.6.48 */
|
||||
#define PNG_LIBPNG_VER 10649 /* 1.6.49 */
|
||||
|
||||
/* Library configuration: these options cannot be changed after
|
||||
* the library has been built.
|
||||
@ -441,7 +441,7 @@ extern "C" {
|
||||
/* This triggers a compiler error in png.c, if png.c and png.h
|
||||
* do not agree upon the version number.
|
||||
*/
|
||||
typedef char* png_libpng_version_1_6_48;
|
||||
typedef char* png_libpng_version_1_6_49;
|
||||
|
||||
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
|
||||
*
|
||||
@ -3322,26 +3322,45 @@ PNG_EXPORT(245, int, png_image_write_to_memory, (png_imagep image, void *memory,
|
||||
* selected at run time.
|
||||
*/
|
||||
#ifdef PNG_SET_OPTION_SUPPORTED
|
||||
|
||||
/* HARDWARE: ARM Neon SIMD instructions supported */
|
||||
#ifdef PNG_ARM_NEON_API_SUPPORTED
|
||||
# define PNG_ARM_NEON 0 /* HARDWARE: ARM Neon SIMD instructions supported */
|
||||
#endif
|
||||
#define PNG_MAXIMUM_INFLATE_WINDOW 2 /* SOFTWARE: force maximum window */
|
||||
#define PNG_SKIP_sRGB_CHECK_PROFILE 4 /* SOFTWARE: Check ICC profile for sRGB */
|
||||
#ifdef PNG_MIPS_MSA_API_SUPPORTED
|
||||
# define PNG_MIPS_MSA 6 /* HARDWARE: MIPS Msa SIMD instructions supported */
|
||||
#endif
|
||||
#ifdef PNG_DISABLE_ADLER32_CHECK_SUPPORTED
|
||||
# define PNG_IGNORE_ADLER32 8 /* SOFTWARE: disable Adler32 check on IDAT */
|
||||
#endif
|
||||
#ifdef PNG_POWERPC_VSX_API_SUPPORTED
|
||||
# define PNG_POWERPC_VSX 10 /* HARDWARE: PowerPC VSX SIMD instructions
|
||||
* supported */
|
||||
#endif
|
||||
#ifdef PNG_MIPS_MMI_API_SUPPORTED
|
||||
# define PNG_MIPS_MMI 12 /* HARDWARE: MIPS MMI SIMD instructions supported */
|
||||
# define PNG_ARM_NEON 0
|
||||
#endif
|
||||
|
||||
#define PNG_OPTION_NEXT 14 /* Next option - numbers must be even */
|
||||
/* SOFTWARE: Force maximum window */
|
||||
#define PNG_MAXIMUM_INFLATE_WINDOW 2
|
||||
|
||||
/* SOFTWARE: Check ICC profile for sRGB */
|
||||
#define PNG_SKIP_sRGB_CHECK_PROFILE 4
|
||||
|
||||
/* HARDWARE: MIPS MSA SIMD instructions supported */
|
||||
#ifdef PNG_MIPS_MSA_API_SUPPORTED
|
||||
# define PNG_MIPS_MSA 6
|
||||
#endif
|
||||
|
||||
/* SOFTWARE: Disable Adler32 check on IDAT */
|
||||
#ifdef PNG_DISABLE_ADLER32_CHECK_SUPPORTED
|
||||
# define PNG_IGNORE_ADLER32 8
|
||||
#endif
|
||||
|
||||
/* HARDWARE: PowerPC VSX SIMD instructions supported */
|
||||
#ifdef PNG_POWERPC_VSX_API_SUPPORTED
|
||||
# define PNG_POWERPC_VSX 10
|
||||
#endif
|
||||
|
||||
/* HARDWARE: MIPS MMI SIMD instructions supported */
|
||||
#ifdef PNG_MIPS_MMI_API_SUPPORTED
|
||||
# define PNG_MIPS_MMI 12
|
||||
#endif
|
||||
|
||||
/* HARDWARE: RISC-V RVV SIMD instructions supported */
|
||||
#ifdef PNG_RISCV_RVV_API_SUPPORTED
|
||||
# define PNG_RISCV_RVV 14
|
||||
#endif
|
||||
|
||||
/* Next option - numbers must be even */
|
||||
#define PNG_OPTION_NEXT 16
|
||||
|
||||
/* Return values: NOTE: there are four values and 'off' is *not* zero */
|
||||
#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */
|
||||
|
2
extlib/libpng/pngconf.h
vendored
2
extlib/libpng/pngconf.h
vendored
@ -1,6 +1,6 @@
|
||||
/* pngconf.h - machine-configurable file for libpng
|
||||
*
|
||||
* libpng version 1.6.48
|
||||
* libpng version 1.6.49
|
||||
*
|
||||
* Copyright (c) 2018-2025 Cosmin Truta
|
||||
* Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson
|
||||
|
50
extlib/libpng/pngpriv.h
vendored
50
extlib/libpng/pngpriv.h
vendored
@ -143,6 +143,24 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef PNG_RISCV_RVV_OPT
|
||||
/* RISCV_RVV optimizations are being controlled by the compiler settings,
|
||||
* typically the target compiler will define __riscv but the rvv extension
|
||||
* availability has to be explicitly stated. This is why if no
|
||||
* PNG_RISCV_RVV_OPT was defined then a runtime check will be executed.
|
||||
*
|
||||
* To enable RISCV_RVV optimizations unconditionally, and compile the
|
||||
* associated code, pass --enable-riscv-rvv=yes or --enable-riscv-rvv=on
|
||||
* to configure or put -DPNG_RISCV_RVV_OPT=2 in CPPFLAGS.
|
||||
*/
|
||||
|
||||
# if defined(__riscv) && defined(PNG_ALIGNED_MEMORY_SUPPORTED)
|
||||
# define PNG_RISCV_RVV_OPT 1
|
||||
# else
|
||||
# define PNG_RISCV_RVV_OPT 0
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if PNG_ARM_NEON_OPT > 0
|
||||
/* NEON optimizations are to be at least considered by libpng, so enable the
|
||||
* callbacks to do this.
|
||||
@ -260,6 +278,16 @@
|
||||
# define PNG_LOONGARCH_LSX_IMPLEMENTATION 0
|
||||
#endif
|
||||
|
||||
#if PNG_RISCV_RVV_OPT > 0
|
||||
# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_rvv
|
||||
# ifndef PNG_RISCV_RVV_IMPLEMENTATION
|
||||
/* Use the intrinsics code by default. */
|
||||
# define PNG_RISCV_RVV_IMPLEMENTATION 1
|
||||
# endif
|
||||
#else
|
||||
# define PNG_RISCV_RVV_IMPLEMENTATION 0
|
||||
#endif
|
||||
|
||||
/* Is this a build of a DLL where compilation of the object modules requires
|
||||
* different preprocessor settings to those required for a simple library? If
|
||||
* so PNG_BUILD_DLL must be set.
|
||||
@ -1505,6 +1533,23 @@ PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_lsx,(png_row_infop
|
||||
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||
#endif
|
||||
|
||||
#if PNG_RISCV_RVV_OPT > 0
|
||||
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_up_rvv,(png_row_infop
|
||||
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_rvv,(png_row_infop
|
||||
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_rvv,(png_row_infop
|
||||
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_rvv,(png_row_infop
|
||||
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_rvv,(png_row_infop
|
||||
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_rvv,(png_row_infop
|
||||
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_rvv,(png_row_infop
|
||||
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||
#endif
|
||||
|
||||
/* Choose the best filter to use and filter the row data */
|
||||
PNG_INTERNAL_FUNCTION(void,png_write_find_filter,(png_structrp png_ptr,
|
||||
png_row_infop row_info),PNG_EMPTY);
|
||||
@ -2158,6 +2203,11 @@ PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_lsx,
|
||||
(png_structp png_ptr, unsigned int bpp), PNG_EMPTY);
|
||||
#endif
|
||||
|
||||
# if PNG_RISCV_RVV_OPT > 0
|
||||
PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_rvv,
|
||||
(png_structp png_ptr, unsigned int bpp), PNG_EMPTY);
|
||||
#endif
|
||||
|
||||
PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr,
|
||||
png_const_charp key, png_bytep new_key), PNG_EMPTY);
|
||||
|
||||
|
3
extlib/libpng/pngread.c
vendored
3
extlib/libpng/pngread.c
vendored
@ -889,7 +889,8 @@ png_read_destroy(png_structrp png_ptr)
|
||||
#endif
|
||||
|
||||
#if defined(PNG_READ_EXPAND_SUPPORTED) && \
|
||||
defined(PNG_ARM_NEON_IMPLEMENTATION)
|
||||
(defined(PNG_ARM_NEON_IMPLEMENTATION) || \
|
||||
defined(PNG_RISCV_RVV_IMPLEMENTATION))
|
||||
png_free(png_ptr, png_ptr->riffled_palette);
|
||||
png_ptr->riffled_palette = NULL;
|
||||
#endif
|
||||
|
6
extlib/libpng/pngrtran.c
vendored
6
extlib/libpng/pngrtran.c
vendored
@ -29,6 +29,12 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef PNG_RISCV_RVV_IMPLEMENTATION
|
||||
# if PNG_RISCV_RVV_IMPLEMENTATION == 1
|
||||
# define PNG_RISCV_RVV_INTRINSICS_AVAILABLE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_SUPPORTED
|
||||
|
||||
/* Set the action on getting a CRC error for an ancillary or critical chunk. */
|
||||
|
1
extlib/libpng/pngrutil.c
vendored
1
extlib/libpng/pngrutil.c
vendored
@ -4434,7 +4434,6 @@ png_read_IDAT_data(png_structrp png_ptr, png_bytep output,
|
||||
png_error(png_ptr, "Not enough image data");
|
||||
}
|
||||
#endif /* PNG_READ_APNG_SUPPORTED */
|
||||
|
||||
avail_in = png_ptr->IDAT_read_size;
|
||||
|
||||
if (avail_in > png_chunk_max(png_ptr))
|
||||
|
3
extlib/libpng/pngstruct.h
vendored
3
extlib/libpng/pngstruct.h
vendored
@ -375,7 +375,8 @@ struct png_struct_def
|
||||
|
||||
/* New member added in libpng-1.6.36 */
|
||||
#if defined(PNG_READ_EXPAND_SUPPORTED) && \
|
||||
defined(PNG_ARM_NEON_IMPLEMENTATION)
|
||||
(defined(PNG_ARM_NEON_IMPLEMENTATION) || \
|
||||
defined(PNG_RISCV_RVV_IMPLEMENTATION))
|
||||
png_bytep riffled_palette; /* buffer for accelerated palette expansion */
|
||||
#endif
|
||||
|
||||
|
2
extlib/libpng/pngtest.c
vendored
2
extlib/libpng/pngtest.c
vendored
@ -50,7 +50,7 @@
|
||||
#define STDERR stdout
|
||||
|
||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||
typedef png_libpng_version_1_6_48 Your_png_h_is_not_version_1_6_48;
|
||||
typedef png_libpng_version_1_6_49 Your_png_h_is_not_version_1_6_49;
|
||||
|
||||
/* Ensure that all version numbers in png.h are consistent with one another. */
|
||||
#if (PNG_LIBPNG_VER != PNG_LIBPNG_VER_MAJOR * 10000 + \
|
||||
|
8
extlib/libpng/riscv/.editorconfig
vendored
Normal file
8
extlib/libpng/riscv/.editorconfig
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
# https://editorconfig.org
|
||||
|
||||
root = false
|
||||
|
||||
# FIXME
|
||||
[*.[ch]]
|
||||
max_doc_length = unset
|
||||
max_line_length = unset
|
368
extlib/libpng/riscv/filter_rvv_intrinsics.c
vendored
Normal file
368
extlib/libpng/riscv/filter_rvv_intrinsics.c
vendored
Normal file
@ -0,0 +1,368 @@
|
||||
/* filter_rvv_intrinsics.c - RISC-V Vector optimized filter functions
|
||||
*
|
||||
* Copyright (c) 2023 Google LLC
|
||||
* Written by Manfred SCHLAEGL, 2022
|
||||
* Dragoș Tiselice <dtiselice@google.com>, May 2023.
|
||||
* Filip Wasil <f.wasil@samsung.com>, March 2025.
|
||||
*
|
||||
* This code is released under the libpng license.
|
||||
* For conditions of distribution and use, see the disclaimer
|
||||
* and license in png.h
|
||||
*/
|
||||
|
||||
#include "../pngpriv.h"
|
||||
|
||||
#ifdef PNG_READ_SUPPORTED
|
||||
|
||||
#if PNG_RISCV_RVV_IMPLEMENTATION == 1 /* intrinsics code from pngpriv.h */
|
||||
|
||||
#include <riscv_vector.h>
|
||||
|
||||
void
|
||||
png_read_filter_row_up_rvv(png_row_infop row_info, png_bytep row,
|
||||
png_const_bytep prev_row)
|
||||
{
|
||||
size_t len = row_info->rowbytes;
|
||||
|
||||
for (size_t vl; len > 0; len -= vl, row += vl, prev_row += vl)
|
||||
{
|
||||
vl = __riscv_vsetvl_e8m8(len);
|
||||
|
||||
vuint8m8_t prev_vals = __riscv_vle8_v_u8m8(prev_row, vl);
|
||||
vuint8m8_t row_vals = __riscv_vle8_v_u8m8(row, vl);
|
||||
|
||||
row_vals = __riscv_vadd_vv_u8m8(row_vals, prev_vals, vl);
|
||||
|
||||
__riscv_vse8_v_u8m8(row, row_vals, vl);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
png_read_filter_row_sub_rvv(size_t len, size_t bpp, unsigned char* row)
|
||||
{
|
||||
png_bytep rp_end = row + len;
|
||||
|
||||
/*
|
||||
* row: | a | x |
|
||||
*
|
||||
* a = a + x
|
||||
*
|
||||
* a .. [v0](e8)
|
||||
* x .. [v8](e8)
|
||||
*/
|
||||
|
||||
asm volatile ("vsetvli zero, %0, e8, m1" : : "r" (bpp));
|
||||
|
||||
/* a = *row */
|
||||
asm volatile ("vle8.v v0, (%0)" : : "r" (row));
|
||||
row += bpp;
|
||||
|
||||
while (row < rp_end)
|
||||
{
|
||||
/* x = *row */
|
||||
asm volatile ("vle8.v v8, (%0)" : : "r" (row));
|
||||
/* a = a + x */
|
||||
asm volatile ("vadd.vv v0, v0, v8");
|
||||
|
||||
/* *row = a */
|
||||
asm volatile ("vse8.v v0, (%0)" : : "r" (row));
|
||||
row += bpp;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
png_read_filter_row_sub3_rvv(png_row_infop row_info, png_bytep row,
|
||||
png_const_bytep prev_row)
|
||||
{
|
||||
size_t len = row_info->rowbytes;
|
||||
|
||||
png_read_filter_row_sub_rvv(len, 3, row);
|
||||
|
||||
PNG_UNUSED(prev_row)
|
||||
}
|
||||
|
||||
void
|
||||
png_read_filter_row_sub4_rvv(png_row_infop row_info, png_bytep row,
|
||||
png_const_bytep prev_row)
|
||||
{
|
||||
size_t len = row_info->rowbytes;
|
||||
|
||||
png_read_filter_row_sub_rvv(len, 4, row);
|
||||
|
||||
PNG_UNUSED(prev_row)
|
||||
}
|
||||
|
||||
static inline void
|
||||
png_read_filter_row_avg_rvv(size_t len, size_t bpp, unsigned char* row,
|
||||
const unsigned char* prev_row)
|
||||
{
|
||||
png_bytep rp_end = row + len;
|
||||
|
||||
/*
|
||||
* row: | a | x |
|
||||
* prev_row: | | b |
|
||||
*
|
||||
* a .. [v2](e8)
|
||||
* b .. [v4](e8)
|
||||
* x .. [v8](e8)
|
||||
* tmp .. [v12-v13](e16)
|
||||
*/
|
||||
|
||||
/* first pixel */
|
||||
|
||||
asm volatile ("vsetvli zero, %0, e8, m1" : : "r" (bpp));
|
||||
|
||||
/* b = *prev_row */
|
||||
asm volatile ("vle8.v v4, (%0)" : : "r" (prev_row));
|
||||
prev_row += bpp;
|
||||
|
||||
/* x = *row */
|
||||
asm volatile ("vle8.v v8, (%0)" : : "r" (row));
|
||||
|
||||
/* b = b / 2 */
|
||||
asm volatile ("vsrl.vi v4, v4, 1");
|
||||
/* a = x + b */
|
||||
asm volatile ("vadd.vv v2, v4, v8");
|
||||
|
||||
/* *row = a */
|
||||
asm volatile ("vse8.v v2, (%0)" : : "r" (row));
|
||||
row += bpp;
|
||||
|
||||
/* remaining pixels */
|
||||
|
||||
while (row < rp_end)
|
||||
{
|
||||
/* b = *prev_row */
|
||||
asm volatile ("vle8.v v4, (%0)" : : "r" (prev_row));
|
||||
prev_row += bpp;
|
||||
|
||||
/* x = *row */
|
||||
asm volatile ("vle8.v v8, (%0)" : : "r" (row));
|
||||
|
||||
/* tmp = a + b */
|
||||
asm volatile ("vwaddu.vv v12, v2, v4"); /* add with widening */
|
||||
/* a = tmp/2 */
|
||||
asm volatile ("vnsrl.wi v2, v12, 1"); /* divide/shift with narrowing */
|
||||
/* a += x */
|
||||
asm volatile ("vadd.vv v2, v2, v8");
|
||||
|
||||
/* *row = a */
|
||||
asm volatile ("vse8.v v2, (%0)" : : "r" (row));
|
||||
row += bpp;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
png_read_filter_row_avg3_rvv(png_row_infop row_info, png_bytep row,
|
||||
png_const_bytep prev_row)
|
||||
{
|
||||
size_t len = row_info->rowbytes;
|
||||
|
||||
png_read_filter_row_avg_rvv(len, 3, row, prev_row);
|
||||
|
||||
PNG_UNUSED(prev_row)
|
||||
}
|
||||
|
||||
void
|
||||
png_read_filter_row_avg4_rvv(png_row_infop row_info, png_bytep row,
|
||||
png_const_bytep prev_row)
|
||||
{
|
||||
size_t len = row_info->rowbytes;
|
||||
|
||||
png_read_filter_row_avg_rvv(len, 4, row, prev_row);
|
||||
|
||||
PNG_UNUSED(prev_row)
|
||||
}
|
||||
|
||||
#define MIN_CHUNK_LEN 256
|
||||
#define MAX_CHUNK_LEN 2048
|
||||
|
||||
static inline vuint8m1_t
|
||||
prefix_sum(vuint8m1_t chunk, unsigned char* carry, size_t vl,
|
||||
size_t max_chunk_len)
|
||||
{
|
||||
size_t r;
|
||||
|
||||
for (r = 1; r < MIN_CHUNK_LEN; r <<= 1)
|
||||
{
|
||||
vbool8_t shift_mask = __riscv_vmsgeu_vx_u8m1_b8(__riscv_vid_v_u8m1(vl), r, vl);
|
||||
chunk = __riscv_vadd_vv_u8m1_mu(shift_mask, chunk, chunk, __riscv_vslideup_vx_u8m1(__riscv_vundefined_u8m1(), chunk, r, vl), vl);
|
||||
}
|
||||
|
||||
for (r = MIN_CHUNK_LEN; r < MAX_CHUNK_LEN && r < max_chunk_len; r <<= 1)
|
||||
{
|
||||
vbool8_t shift_mask = __riscv_vmsgeu_vx_u8m1_b8(__riscv_vid_v_u8m1(vl), r, vl);
|
||||
chunk = __riscv_vadd_vv_u8m1_mu(shift_mask, chunk, chunk, __riscv_vslideup_vx_u8m1(__riscv_vundefined_u8m1(), chunk, r, vl), vl);
|
||||
}
|
||||
|
||||
chunk = __riscv_vadd_vx_u8m1(chunk, *carry, vl);
|
||||
*carry = __riscv_vmv_x_s_u8m1_u8(__riscv_vslidedown_vx_u8m1(chunk, vl - 1, vl));
|
||||
|
||||
return chunk;
|
||||
}
|
||||
|
||||
static inline vint16m1_t
|
||||
abs_diff(vuint16m1_t a, vuint16m1_t b, size_t vl)
|
||||
{
|
||||
vint16m1_t diff = __riscv_vreinterpret_v_u16m1_i16m1(__riscv_vsub_vv_u16m1(a, b, vl));
|
||||
vint16m1_t neg = __riscv_vneg_v_i16m1(diff, vl);
|
||||
|
||||
return __riscv_vmax_vv_i16m1(diff, neg, vl);
|
||||
}
|
||||
|
||||
static inline vint16m1_t
|
||||
abs_sum(vint16m1_t a, vint16m1_t b, size_t vl)
|
||||
{
|
||||
vint16m1_t sum = __riscv_vadd_vv_i16m1(a, b, vl);
|
||||
vint16m1_t neg = __riscv_vneg_v_i16m1(sum, vl);
|
||||
|
||||
return __riscv_vmax_vv_i16m1(sum, neg, vl);
|
||||
}
|
||||
|
||||
static inline void
|
||||
png_read_filter_row_paeth_rvv(size_t len, size_t bpp, unsigned char* row,
|
||||
const unsigned char* prev)
|
||||
{
|
||||
png_bytep rp_end = row + len;
|
||||
|
||||
/*
|
||||
* row: | a | x |
|
||||
* prev: | c | b |
|
||||
*
|
||||
* mask .. [v0]
|
||||
* a .. [v2](e8)
|
||||
* b .. [v4](e8)
|
||||
* c .. [v6](e8)
|
||||
* x .. [v8](e8)
|
||||
* p .. [v12-v13](e16)
|
||||
* pa .. [v16-v17](e16)
|
||||
* pb .. [v20-v21](e16)
|
||||
* pc .. [v24-v25](e16)
|
||||
* tmpmask ..[v31]
|
||||
*/
|
||||
|
||||
/* first pixel */
|
||||
|
||||
asm volatile ("vsetvli zero, %0, e8, m1" : : "r" (bpp));
|
||||
|
||||
/* a = *row + *prev_row */
|
||||
asm volatile ("vle8.v v2, (%0)" : : "r" (row));
|
||||
asm volatile ("vle8.v v6, (%0)" : : "r" (prev));
|
||||
prev += bpp;
|
||||
asm volatile ("vadd.vv v2, v2, v6");
|
||||
|
||||
/* *row = a */
|
||||
asm volatile ("vse8.v v2, (%0)" : : "r" (row));
|
||||
row += bpp;
|
||||
|
||||
/* remaining pixels */
|
||||
while (row < rp_end)
|
||||
{
|
||||
/* b = *prev_row */
|
||||
asm volatile ("vle8.v v4, (%0)" : : "r" (prev));
|
||||
prev += bpp;
|
||||
|
||||
/* x = *row */
|
||||
asm volatile ("vle8.v v8, (%0)" : : "r" (row));
|
||||
|
||||
/* sub (widening to 16bit) */
|
||||
/* p = b - c */
|
||||
asm volatile ("vwsubu.vv v12, v4, v6");
|
||||
/* pc = a - c */
|
||||
asm volatile ("vwsubu.vv v24, v2, v6");
|
||||
|
||||
/* switch to widened */
|
||||
asm volatile ("vsetvli zero, %0, e16, m2" : : "r" (bpp));
|
||||
|
||||
/* pa = abs(p) -> pa = p < 0 ? -p : p */
|
||||
asm volatile ("vmv.v.v v16, v12"); /* pa = p */
|
||||
asm volatile ("vmslt.vx v0, v16, zero"); /* set mask[i] if pa[i] < 0 */
|
||||
asm volatile ("vrsub.vx v16, v16, zero, v0.t"); /* invert negative values in pa; vd[i] = 0 - vs2[i] (if mask[i])
|
||||
* could be replaced by vneg in rvv >= 1.0
|
||||
*/
|
||||
|
||||
/* pb = abs(p) -> pb = pc < 0 ? -pc : pc */
|
||||
asm volatile ("vmv.v.v v20, v24"); /* pb = pc */
|
||||
asm volatile ("vmslt.vx v0, v20, zero"); /* set mask[i] if pc[i] < 0 */
|
||||
asm volatile ("vrsub.vx v20, v20, zero, v0.t"); /* invert negative values in pb; vd[i] = 0 - vs2[i] (if mask[i])
|
||||
* could be replaced by vneg in rvv >= 1.0
|
||||
*/
|
||||
|
||||
/* pc = abs(p + pc) -> pc = (p + pc) < 0 ? -(p + pc) : p + pc */
|
||||
asm volatile ("vadd.vv v24, v24, v12"); /* pc = p + pc */
|
||||
asm volatile ("vmslt.vx v0, v24, zero"); /* set mask[i] if pc[i] < 0 */
|
||||
asm volatile ("vrsub.vx v24, v24, zero, v0.t"); /* invert negative values in pc; vd[i] = 0 - vs2[i] (if mask[i])
|
||||
* could be replaced by vneg in rvv >= 1.0
|
||||
*/
|
||||
|
||||
/*
|
||||
* if (pb < pa)
|
||||
* {
|
||||
* pa = pb;
|
||||
* a = b;
|
||||
* // see (*1)
|
||||
* }
|
||||
*/
|
||||
asm volatile ("vmslt.vv v0, v20, v16"); /* set mask[i] if pb[i] < pa[i] */
|
||||
asm volatile ("vmerge.vvm v16, v16, v20, v0"); /* pa[i] = pb[i] (if mask[i]) */
|
||||
|
||||
/*
|
||||
* if (pc < pa)
|
||||
* {
|
||||
* a = c;
|
||||
* // see (*2)
|
||||
* }
|
||||
*/
|
||||
asm volatile ("vmslt.vv v31, v24, v16"); /* set tmpmask[i] if pc[i] < pa[i] */
|
||||
|
||||
/* switch to narrow */
|
||||
asm volatile ("vsetvli zero, %0, e8, m1" : : "r" (bpp));
|
||||
|
||||
/* (*1) */
|
||||
asm volatile ("vmerge.vvm v2, v2, v4, v0"); /* a = b (if mask[i]) */
|
||||
|
||||
/* (*2) */
|
||||
asm volatile ("vmand.mm v0, v31, v31"); /* mask = tmpmask
|
||||
* vmand works for rvv 0.7 up to 1.0
|
||||
* could be replaced by vmcpy in 0.7.1/0.8.1
|
||||
* or vmmv.m in 1.0
|
||||
*/
|
||||
asm volatile ("vmerge.vvm v2, v2, v6, v0"); /* a = c (if mask[i]) */
|
||||
|
||||
/* a += x */
|
||||
asm volatile ("vadd.vv v2, v2, v8");
|
||||
|
||||
/* *row = a */
|
||||
asm volatile ("vse8.v v2, (%0)" : : "r" (row));
|
||||
row += bpp;
|
||||
|
||||
/* prepare next iteration (prev is already in a) */
|
||||
/* c = b */
|
||||
asm volatile ("vmv.v.v v6, v4");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
png_read_filter_row_paeth3_rvv(png_row_infop row_info, png_bytep row,
|
||||
png_const_bytep prev_row)
|
||||
{
|
||||
size_t len = row_info->rowbytes;
|
||||
|
||||
png_read_filter_row_paeth_rvv(len, 3, row, prev_row);
|
||||
|
||||
PNG_UNUSED(prev_row)
|
||||
}
|
||||
|
||||
void
|
||||
png_read_filter_row_paeth4_rvv(png_row_infop row_info, png_bytep row,
|
||||
png_const_bytep prev_row)
|
||||
{
|
||||
size_t len = row_info->rowbytes;
|
||||
|
||||
png_read_filter_row_paeth_rvv(len, 4, row, prev_row);
|
||||
|
||||
PNG_UNUSED(prev_row)
|
||||
}
|
||||
|
||||
#endif /* PNG_RISCV_RVV_IMPLEMENTATION */
|
||||
#endif /* READ */
|
126
extlib/libpng/riscv/riscv_init.c
vendored
Normal file
126
extlib/libpng/riscv/riscv_init.c
vendored
Normal file
@ -0,0 +1,126 @@
|
||||
/* riscv_init.c - RISC-V Vector optimized filter functions
|
||||
*
|
||||
* Copyright (c) 2023 Google LLC
|
||||
* Written by Dragoș Tiselice <dtiselice@google.com>, May 2023.
|
||||
* Filip Wasil <f.wasil@samsung.com>, March 2025.
|
||||
* This code is released under the libpng license.
|
||||
* For conditions of distribution and use, see the disclaimer
|
||||
* and license in png.h
|
||||
*/
|
||||
|
||||
#include "../pngpriv.h"
|
||||
|
||||
#ifdef PNG_READ_SUPPORTED
|
||||
|
||||
#if PNG_RISCV_RVV_OPT > 0
|
||||
|
||||
#include <riscv_vector.h>
|
||||
|
||||
#ifdef PNG_RISCV_RVV_CHECK_SUPPORTED /* Do run-time checks */
|
||||
/* WARNING: it is strongly recommended that you do not build libpng with
|
||||
* run-time checks for CPU features if at all possible. In the case of the
|
||||
* RISC-V Vector instructions there is no processor-specific way of detecting
|
||||
* the presence of the required support, therefore run-time detection is
|
||||
* extremely OS specific.
|
||||
*
|
||||
* You may set the macro PNG_RISCV_RVV_FILE to the file name of file containing
|
||||
* a fragment of C source code which defines the png_have_rvv function. There
|
||||
* are a number of implementations in contrib/riscv-rvv, but the only one that
|
||||
* has partial support is contrib/riscv-rvv/linux.c - a generic Linux
|
||||
* implementation which reads /proc/cpuinfo.
|
||||
*/
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
#ifndef PNG_RISCV_RVV_FILE
|
||||
# if defined(__linux__)
|
||||
# define PNG_RISCV_RVV_FILE "contrib/riscv-rvv/linux.c"
|
||||
# else
|
||||
# error "No support for run-time RISC-V Vector checking; use compile-time options"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static int png_have_rvv(png_structp png_ptr);
|
||||
#ifdef PNG_RISCV_RVV_FILE
|
||||
# include PNG_RISCV_RVV_FILE
|
||||
#endif
|
||||
#endif /* PNG_RISCV_RVV_CHECK_SUPPORTED */
|
||||
|
||||
#ifndef PNG_ALIGNED_MEMORY_SUPPORTED
|
||||
# error "ALIGNED_MEMORY is required; set: -DPNG_ALIGNED_MEMORY_SUPPORTED"
|
||||
#endif
|
||||
|
||||
void
|
||||
png_init_filter_functions_rvv(png_structp pp, unsigned int bpp)
|
||||
{
|
||||
/* The switch statement is compiled in for RISCV_RVV_API, the call to
|
||||
* png_have_rvv is compiled in for RISCV_RVV_CHECK. If both are
|
||||
* defined the check is only performed if the API has not set the VECTOR
|
||||
* option on or off explicitly. In this case the check controls what
|
||||
* happens.
|
||||
*/
|
||||
png_debug(1, "in png_init_filter_functions_rvv");
|
||||
#ifdef PNG_RISCV_RVV_API_SUPPORTED
|
||||
switch ((pp->options >> PNG_RISCV_RVV) & 3)
|
||||
{
|
||||
case PNG_OPTION_UNSET:
|
||||
/* Allow the run-time check to execute if it has been enabled -
|
||||
* thus both API and CHECK can be turned on. If it isn't supported
|
||||
* this case will fall through to the 'default' below, which just
|
||||
* returns.
|
||||
*/
|
||||
#endif /* PNG_RISCV_RVV_API_SUPPORTED */
|
||||
#ifdef PNG_RISCV_RVV_CHECK_SUPPORTED
|
||||
{
|
||||
static volatile sig_atomic_t no_rvv = -1; /* not checked */
|
||||
|
||||
if (no_rvv < 0)
|
||||
no_rvv = !png_have_rvv(pp);
|
||||
|
||||
if (no_rvv)
|
||||
return;
|
||||
}
|
||||
#ifdef PNG_RISCV_RVV_API_SUPPORTED
|
||||
break;
|
||||
#endif
|
||||
#endif /* PNG_RISCV_RVV_CHECK_SUPPORTED */
|
||||
|
||||
#ifdef PNG_RISCV_RVV_API_SUPPORTED
|
||||
default: /* OFF or INVALID */
|
||||
return;
|
||||
|
||||
case PNG_OPTION_ON:
|
||||
/* Option turned on */
|
||||
break;
|
||||
}
|
||||
#endif /* PNG_RISCV_RVV_API_SUPPORTED */
|
||||
|
||||
/* IMPORTANT: any new external functions used here must be declared using
|
||||
* PNG_INTERNAL_FUNCTION in ../pngpriv.h. This is required so that the
|
||||
* 'prefix' option to configure works:
|
||||
*
|
||||
* ./configure --with-libpng-prefix=foobar_
|
||||
*
|
||||
* Verify you have got this right by running the above command, doing a build
|
||||
* and examining pngprefix.h; it must contain a #define for every external
|
||||
* function you add. (Notice that this happens automatically for the
|
||||
* initialization function.)
|
||||
*/
|
||||
pp->read_filter[PNG_FILTER_VALUE_UP-1] = png_read_filter_row_up_rvv;
|
||||
|
||||
if (bpp == 3)
|
||||
{
|
||||
pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_rvv;
|
||||
pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = png_read_filter_row_paeth3_rvv;
|
||||
pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_rvv;
|
||||
}
|
||||
else if (bpp == 4)
|
||||
{
|
||||
pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_rvv;
|
||||
pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = png_read_filter_row_paeth4_rvv;
|
||||
pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_rvv;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* PNG_RISCV_RVV_OPT > 0 */
|
||||
#endif /* PNG_READ_SUPPORTED */
|
1
extlib/libpng/scripts/cmake/AUTHORS.md
vendored
1
extlib/libpng/scripts/cmake/AUTHORS.md
vendored
@ -29,6 +29,7 @@ Author List
|
||||
* Jeremy Maitin-Shepard
|
||||
* John Bowler
|
||||
* Jon Creighton
|
||||
* Joost Nieuwenhuijse
|
||||
* Kyle Bentley
|
||||
* Martin Storsjö
|
||||
* Owen Rudge
|
||||
|
52
extlib/libpng/scripts/cmake/PNGGenConfig.cmake
vendored
52
extlib/libpng/scripts/cmake/PNGGenConfig.cmake
vendored
@ -18,21 +18,21 @@ function(generate_chk)
|
||||
set(options)
|
||||
set(oneValueArgs INPUT OUTPUT)
|
||||
set(multiValueArgs DEPENDS)
|
||||
cmake_parse_arguments(_GC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
if(NOT _GC_INPUT)
|
||||
cmake_parse_arguments(_GENCHK "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
if(NOT _GENCHK_INPUT)
|
||||
message(FATAL_ERROR "generate_chk: Missing INPUT argument")
|
||||
endif()
|
||||
if(NOT _GC_OUTPUT)
|
||||
if(NOT _GENCHK_OUTPUT)
|
||||
message(FATAL_ERROR "generate_chk: Missing OUTPUT argument")
|
||||
endif()
|
||||
|
||||
# Run genchk.cmake to generate the .chk file.
|
||||
add_custom_command(OUTPUT "${_GC_OUTPUT}"
|
||||
add_custom_command(OUTPUT "${_GENCHK_OUTPUT}"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
"-DINPUT=${_GC_INPUT}"
|
||||
"-DOUTPUT=${_GC_OUTPUT}"
|
||||
"-DINPUT=${_GENCHK_INPUT}"
|
||||
"-DOUTPUT=${_GENCHK_OUTPUT}"
|
||||
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/cmake/genchk.cmake"
|
||||
DEPENDS "${_GC_INPUT}" ${_GC_DEPENDS}
|
||||
DEPENDS "${_GENCHK_INPUT}" ${_GENCHK_DEPENDS}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
endfunction()
|
||||
|
||||
@ -42,21 +42,21 @@ function(generate_out)
|
||||
set(options)
|
||||
set(oneValueArgs INPUT OUTPUT)
|
||||
set(multiValueArgs DEPENDS)
|
||||
cmake_parse_arguments(_GO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
if(NOT _GO_INPUT)
|
||||
cmake_parse_arguments(_GENOUT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
if(NOT _GENOUT_INPUT)
|
||||
message(FATAL_ERROR "generate_out: Missing INPUT argument")
|
||||
endif()
|
||||
if(NOT _GO_OUTPUT)
|
||||
if(NOT _GENOUT_OUTPUT)
|
||||
message(FATAL_ERROR "generate_out: Missing OUTPUT argument")
|
||||
endif()
|
||||
|
||||
# Run genout.cmake to generate the .out file.
|
||||
add_custom_command(OUTPUT "${_GO_OUTPUT}"
|
||||
add_custom_command(OUTPUT "${_GENOUT_OUTPUT}"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
"-DINPUT=${_GO_INPUT}"
|
||||
"-DOUTPUT=${_GO_OUTPUT}"
|
||||
"-DINPUT=${_GENOUT_INPUT}"
|
||||
"-DOUTPUT=${_GENOUT_OUTPUT}"
|
||||
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/cmake/genout.cmake"
|
||||
DEPENDS "${_GO_INPUT}" ${_GO_DEPENDS}
|
||||
DEPENDS "${_GENOUT_INPUT}" ${_GENOUT_DEPENDS}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
endfunction()
|
||||
|
||||
@ -66,17 +66,17 @@ function(generate_source)
|
||||
set(options)
|
||||
set(oneValueArgs OUTPUT)
|
||||
set(multiValueArgs DEPENDS)
|
||||
cmake_parse_arguments(_GSO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
if(NOT _GSO_OUTPUT)
|
||||
cmake_parse_arguments(_GENSRC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
if(NOT _GENSRC_OUTPUT)
|
||||
message(FATAL_ERROR "generate_source: Missing OUTPUT argument")
|
||||
endif()
|
||||
|
||||
# Run gensrc.cmake to generate the source file.
|
||||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_GSO_OUTPUT}"
|
||||
add_custom_command(OUTPUT "${_GENSRC_OUTPUT}"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
"-DOUTPUT=${_GSO_OUTPUT}"
|
||||
"-DOUTPUT=${_GENSRC_OUTPUT}"
|
||||
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/cmake/gensrc.cmake"
|
||||
DEPENDS ${_GSO_DEPENDS}
|
||||
DEPENDS ${_GENSRC_DEPENDS}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
endfunction()
|
||||
|
||||
@ -86,19 +86,19 @@ function(generate_copy)
|
||||
set(options)
|
||||
set(oneValueArgs INPUT OUTPUT)
|
||||
set(multiValueArgs DEPENDS)
|
||||
cmake_parse_arguments(_GCO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
if(NOT _GCO_INPUT)
|
||||
cmake_parse_arguments(_GENCPY "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
if(NOT _GENCPY_INPUT)
|
||||
message(FATAL_ERROR "generate_copy: Missing INPUT argument")
|
||||
endif()
|
||||
if(NOT _GCO_OUTPUT)
|
||||
if(NOT _GENCPY_OUTPUT)
|
||||
message(FATAL_ERROR "generate_copy: Missing OUTPUT argument")
|
||||
endif()
|
||||
|
||||
# Make a forced file copy, overwriting any pre-existing output file.
|
||||
add_custom_command(OUTPUT "${_GCO_OUTPUT}"
|
||||
add_custom_command(OUTPUT "${_GENCPY_OUTPUT}"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-E remove "${_GCO_OUTPUT}"
|
||||
-E remove "${_GENCPY_OUTPUT}"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-E copy "${_GCO_INPUT}" "${_GCO_OUTPUT}"
|
||||
DEPENDS "${source}" ${_GCO_DEPENDS})
|
||||
-E copy "${_GENCPY_INPUT}" "${_GENCPY_OUTPUT}"
|
||||
DEPENDS "${_GENCPY_INPUT}" ${_GENCPY_DEPENDS})
|
||||
endfunction()
|
||||
|
3
extlib/libpng/scripts/cmake/genout.cmake.in
vendored
3
extlib/libpng/scripts/cmake/genout.cmake.in
vendored
@ -1,7 +1,7 @@
|
||||
# genout.cmake.in
|
||||
# Generate .out from .c with awk (generic), based upon the automake logic.
|
||||
|
||||
# Copyright (c) 2022-2024 Cosmin Truta
|
||||
# Copyright (c) 2022-2025 Cosmin Truta
|
||||
# Copyright (c) 2016 Glenn Randers-Pehrson
|
||||
# Written by Roger Leigh, 2016
|
||||
#
|
||||
@ -16,6 +16,7 @@
|
||||
set(SRCDIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||
set(BINDIR "@CMAKE_CURRENT_BINARY_DIR@")
|
||||
|
||||
set(APPLE "@APPLE@")
|
||||
set(AWK "@AWK@")
|
||||
set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@")
|
||||
set(CMAKE_C_FLAGS @CMAKE_C_FLAGS@)
|
||||
|
33
extlib/libpng/scripts/cmake/gensrc.cmake.in
vendored
33
extlib/libpng/scripts/cmake/gensrc.cmake.in
vendored
@ -21,8 +21,8 @@ set(DFA_XTRA "@DFA_XTRA@")
|
||||
set(PNG_PREFIX "@PNG_PREFIX@")
|
||||
set(PNGLIB_VERSION "@PNGLIB_VERSION@")
|
||||
|
||||
if(OUTPUT STREQUAL "scripts/pnglibconf.c")
|
||||
# Generate scripts/pnglibconf.c
|
||||
if(OUTPUT MATCHES "(scripts/pnglibconf\\.c)\$")
|
||||
# Generate "${BINDIR}/scripts/pnglibconf.c"
|
||||
|
||||
file(REMOVE "${BINDIR}/pnglibconf.tf6" "${BINDIR}/pnglibconf.tf7")
|
||||
|
||||
@ -49,8 +49,8 @@ if(OUTPUT STREQUAL "scripts/pnglibconf.c")
|
||||
file(MAKE_DIRECTORY "${BINDIR}/scripts")
|
||||
file(RENAME "pnglibconf.tf7" "${BINDIR}/scripts/pnglibconf.c")
|
||||
|
||||
elseif(OUTPUT STREQUAL "pnglibconf.c")
|
||||
# Generate pnglibconf.c
|
||||
elseif(OUTPUT MATCHES "(pnglibconf\\.c)\$")
|
||||
# Generate "${BINDIR}/pnglibconf.c"
|
||||
|
||||
file(REMOVE "${BINDIR}/pnglibconf.tf4" "${BINDIR}/pnglibconf.tf5")
|
||||
|
||||
@ -76,10 +76,10 @@ elseif(OUTPUT STREQUAL "pnglibconf.c")
|
||||
file(MAKE_DIRECTORY "${BINDIR}/scripts")
|
||||
file(RENAME "pnglibconf.tf5" "${BINDIR}/pnglibconf.c")
|
||||
|
||||
elseif(OUTPUT STREQUAL "pnglibconf.h")
|
||||
# Generate pnglibconf.h
|
||||
elseif(OUTPUT MATCHES "(pnglibconf\\.h)\$")
|
||||
# Generate "${BINDIR}/pnglibconf.h"
|
||||
|
||||
file(REMOVE "${BINDIR}/${OUTPUT}")
|
||||
file(REMOVE "${OUTPUT}")
|
||||
if(PNG_PREFIX)
|
||||
file(REMOVE "pnglibconf.tf8")
|
||||
|
||||
@ -95,20 +95,21 @@ elseif(OUTPUT STREQUAL "pnglibconf.h")
|
||||
message(FATAL_ERROR "Failed to generate pnglibconf.tf8")
|
||||
endif()
|
||||
|
||||
file(RENAME "pnglibconf.tf8" "${BINDIR}/${OUTPUT}")
|
||||
file(RENAME "pnglibconf.tf8" "${OUTPUT}")
|
||||
else()
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}" -E copy "${BINDIR}/pnglibconf.out"
|
||||
"${BINDIR}/${OUTPUT}"
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}" -E copy "pnglibconf.out"
|
||||
"${OUTPUT}"
|
||||
WORKING_DIRECTORY "${BINDIR}"
|
||||
RESULT_VARIABLE COPY_FAIL)
|
||||
if(COPY_FAIL)
|
||||
message(FATAL_ERROR "Failed to create pnglibconf.h")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
elseif(OUTPUT STREQUAL "pngprefix.h")
|
||||
# Generate pngprefix.h
|
||||
elseif(OUTPUT MATCHES "(pngprefix\\.h)\$")
|
||||
# Generate "${BINDIR}/pngprefix.h"
|
||||
|
||||
file(REMOVE "${BINDIR}/${OUTPUT}")
|
||||
file(REMOVE "${OUTPUT}")
|
||||
|
||||
if(PNG_PREFIX)
|
||||
file(REMOVE "pngprefix.tf1")
|
||||
@ -122,12 +123,12 @@ elseif(OUTPUT STREQUAL "pngprefix.h")
|
||||
message(FATAL_ERROR "Failed to generate pngprefix.tf1")
|
||||
endif()
|
||||
|
||||
file(RENAME "pngprefix.tf1" "${BINDIR}/${OUTPUT}")
|
||||
file(RENAME "pngprefix.tf1" "${OUTPUT}")
|
||||
else()
|
||||
file(WRITE "${BINDIR}/${OUTPUT}" "/* No libpng symbol prefix configured. */")
|
||||
file(WRITE "${OUTPUT}" "/* No libpng symbol prefix configured. */")
|
||||
endif()
|
||||
|
||||
elseif(OUTPUT STREQUAL "scripts/pnglibconf.h.prebuilt")
|
||||
elseif(OUTPUT MATCHES "(scripts/pnglibconf\\.h\\.prebuilt)\$")
|
||||
# Generate scripts/pnglibconf.h.prebuilt (fails build)
|
||||
|
||||
message(STATUS "Attempting to build scripts/pnglibconf.h.prebuilt")
|
||||
|
2
extlib/libpng/scripts/libpng-config-head.in
vendored
2
extlib/libpng/scripts/libpng-config-head.in
vendored
@ -11,7 +11,7 @@
|
||||
|
||||
# Modeled after libxml-config.
|
||||
|
||||
version=1.6.48
|
||||
version=1.6.49
|
||||
prefix=""
|
||||
libdir=""
|
||||
libs=""
|
||||
|
2
extlib/libpng/scripts/libpng.pc.in
vendored
2
extlib/libpng/scripts/libpng.pc.in
vendored
@ -5,6 +5,6 @@ includedir=@includedir@/libpng16
|
||||
|
||||
Name: libpng
|
||||
Description: Loads and saves PNG files
|
||||
Version: 1.6.48
|
||||
Version: 1.6.49
|
||||
Libs: -L${libdir} -lpng16
|
||||
Cflags: -I${includedir}
|
||||
|
3
extlib/libpng/scripts/makefile.c89
vendored
3
extlib/libpng/scripts/makefile.c89
vendored
@ -22,7 +22,8 @@ RM_F = rm -f
|
||||
|
||||
# Compiler and linker flags
|
||||
NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 \
|
||||
-DPNG_RISCV_RVV_OPT=0
|
||||
STDC = -pedantic-errors -std=c89
|
||||
WARN = -Wall -Wextra -Wundef
|
||||
WARNMORE = -Wcast-align -Wconversion -Wshadow -Wpointer-arith -Wwrite-strings \
|
||||
|
3
extlib/libpng/scripts/makefile.clang
vendored
3
extlib/libpng/scripts/makefile.clang
vendored
@ -21,7 +21,8 @@ RM_F = rm -f
|
||||
|
||||
# Compiler and linker flags
|
||||
NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 \
|
||||
-DPNG_RISCV_RVV_OPT=0
|
||||
STDC = -pedantic-errors # -std=c99
|
||||
WARN = -Wall -Wextra -Wundef
|
||||
WARNMORE = -Wcast-align -Wconversion -Wshadow -Wpointer-arith -Wwrite-strings \
|
||||
|
3
extlib/libpng/scripts/makefile.darwin
vendored
3
extlib/libpng/scripts/makefile.darwin
vendored
@ -28,7 +28,8 @@ RM_F=rm -f
|
||||
|
||||
# Compiler and linker flags
|
||||
NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 \
|
||||
-DPNG_RISCV_RVV_OPT=0
|
||||
STDC = -pedantic-errors
|
||||
WARN = -Wall -Wextra -Wundef
|
||||
WARNMORE = -Wcast-align -Wconversion -Wshadow -Wpointer-arith -Wwrite-strings \
|
||||
|
3
extlib/libpng/scripts/makefile.gcc
vendored
3
extlib/libpng/scripts/makefile.gcc
vendored
@ -21,7 +21,8 @@ RM_F = rm -f
|
||||
|
||||
# Compiler and linker flags
|
||||
NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 \
|
||||
-DPNG_RISCV_RVV_OPT=0
|
||||
STDC = -pedantic-errors # -std=c99
|
||||
WARN = -Wall -Wextra -Wundef
|
||||
WARNMORE = -Wcast-align -Wconversion -Wshadow -Wpointer-arith -Wwrite-strings \
|
||||
|
3
extlib/libpng/scripts/makefile.linux
vendored
3
extlib/libpng/scripts/makefile.linux
vendored
@ -26,7 +26,8 @@ RM_F=rm -f
|
||||
|
||||
# Compiler and linker flags
|
||||
NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 \
|
||||
-DPNG_RISCV_RVV_OPT=0
|
||||
STDC = -pedantic-errors
|
||||
WARN = -Wall -Wextra -Wundef
|
||||
WARNMORE = -Wcast-align -Wconversion -Wshadow -Wpointer-arith -Wwrite-strings \
|
||||
|
3
extlib/libpng/scripts/makefile.msys
vendored
3
extlib/libpng/scripts/makefile.msys
vendored
@ -32,7 +32,8 @@ LN_SF = ln -sf
|
||||
|
||||
# Compiler and linker flags
|
||||
NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 \
|
||||
-DPNG_RISCV_RVV_OPT=0
|
||||
STDC = -pedantic-errors
|
||||
WARN = -Wall -Wextra -Wundef
|
||||
WARNMORE = -Wcast-align -Wconversion -Wshadow -Wpointer-arith -Wwrite-strings \
|
||||
|
3
extlib/libpng/scripts/makefile.std
vendored
3
extlib/libpng/scripts/makefile.std
vendored
@ -23,7 +23,8 @@ RM_F = rm -f
|
||||
AWK = awk
|
||||
|
||||
NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0
|
||||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 \
|
||||
-DPNG_RISCV_RVV_OPT=0
|
||||
DFNFLAGS = # DFNFLAGS contains -D options to use in the libpng build
|
||||
DFA_EXTRA = # extra files that can be used to control configuration
|
||||
CPPFLAGS = -I$(ZLIBINC) $(NOHWOPT) # -DPNG_DEBUG=5
|
||||
|
2
extlib/libpng/scripts/pnglibconf.h.prebuilt
vendored
2
extlib/libpng/scripts/pnglibconf.h.prebuilt
vendored
@ -1,6 +1,6 @@
|
||||
/* pnglibconf.h - library build configuration */
|
||||
|
||||
/* libpng version 1.6.48 */
|
||||
/* libpng version 1.6.49 */
|
||||
|
||||
/* Copyright (c) 2018-2025 Cosmin Truta */
|
||||
/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */
|
||||
|
2
extlib/lz4/tests/cmake/CMakeLists.txt
vendored
2
extlib/lz4/tests/cmake/CMakeLists.txt
vendored
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.5...3.10)
|
||||
|
||||
project(cmake_install_test LANGUAGES C)
|
||||
|
||||
|
4
extlib/minizip-ng/CMakeLists.txt
vendored
4
extlib/minizip-ng/CMakeLists.txt
vendored
@ -191,12 +191,16 @@ if(MZ_LIBCOMP)
|
||||
endif()
|
||||
|
||||
if(MZ_ZLIB)
|
||||
# rom-properties: Don't check for ZLIB/ZLIBNG here.
|
||||
# We've already checked for it.
|
||||
IF(0)
|
||||
# Check if zlib is present
|
||||
if(NOT MZ_FORCE_FETCH_LIBS)
|
||||
find_package(ZLIBNG QUIET)
|
||||
find_package(ZLIB QUIET)
|
||||
set(ZLIB_VERSION ${ZLIB_VERSION_STRING})
|
||||
endif()
|
||||
ENDIF(0) # rom-properties
|
||||
|
||||
if(ZLIBNG_FOUND AND NOT MZ_FORCE_FETCH_LIBS)
|
||||
message(STATUS "Using ZLIBNG")
|
||||
|
10
extlib/minizip-ng/_MODIFIED_MINIZIP.txt
vendored
10
extlib/minizip-ng/_MODIFIED_MINIZIP.txt
vendored
@ -1,9 +1,9 @@
|
||||
This copy of minizip-ng 4.0.9 is a modified version of the original.
|
||||
This copy of minizip-ng 4.0.10 is a modified version of the original.
|
||||
|
||||
commit 95ba7abdd24a956bde584db54d1d55e37d511e2f
|
||||
Version 4.0.9.
|
||||
commit f3ed731e27a97e30dffe076ed5e0537daae5c1bd
|
||||
Version 4.0.10.
|
||||
|
||||
Tag: 4.0.9
|
||||
Tag: 4.0.10
|
||||
|
||||
The following changes have been made to the original:
|
||||
|
||||
@ -23,7 +23,7 @@ The following changes have been made to the original:
|
||||
- project(): Disabled DESCRIPTION and HOMEPAGE_URL due to requiring
|
||||
newer versions of CMake than what's available in Ubuntu 16.04.
|
||||
|
||||
To obtain the original minizip-ng 4.0.9, visit:
|
||||
To obtain the original minizip-ng 4.0.10, visit:
|
||||
https://github.com/zlib-ng/minizip-ng
|
||||
|
||||
To obtain the original minizip-1.1, visit:
|
||||
|
620
locale/ar.po
620
locale/ar.po
File diff suppressed because it is too large
Load Diff
620
locale/de.po
620
locale/de.po
File diff suppressed because it is too large
Load Diff
621
locale/es.po
621
locale/es.po
File diff suppressed because it is too large
Load Diff
622
locale/fr.po
622
locale/fr.po
File diff suppressed because it is too large
Load Diff
620
locale/it.po
620
locale/it.po
File diff suppressed because it is too large
Load Diff
620
locale/pt.po
620
locale/pt.po
File diff suppressed because it is too large
Load Diff
620
locale/ro.po
620
locale/ro.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
620
locale/ru.po
620
locale/ru.po
File diff suppressed because it is too large
Load Diff
620
locale/uk.po
620
locale/uk.po
File diff suppressed because it is too large
Load Diff
@ -147,6 +147,7 @@ ADD_SUBDIRECTORY(amiibo-data)
|
||||
ADD_SUBDIRECTORY(libromdata)
|
||||
|
||||
IF(BUILD_CLI)
|
||||
ADD_SUBDIRECTORY(libgsvt)
|
||||
ADD_SUBDIRECTORY(rpcli)
|
||||
ENDIF(BUILD_CLI)
|
||||
IF(ENABLE_NETWORKING)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user