Commit Graph

44 Commits

Author SHA1 Message Date
David Korth
55f86d1158 Add an internal copy of PugiXML and remove TinyXML2 completely.
TODO:
- Add the 'd' postfix to the debug DLL.
- Configure PugiXML options and hide them from the user, since these are
  configured by rom-properties.
2025-04-01 19:19:20 -04:00
David Korth
5e4571f209 Renamed extlib/libfmt/ to extlib/fmt/.
It's called just "fmt" upstream (or "fmtlib").
2025-03-20 22:16:59 -04:00
David Korth
1cd09c3039 [librptexture] Qoi: New parser for the Quite OK Image Format.
qoi.h is used for upstream, instead of writing a custom decoder.
I may write a custom decoder later to decode the Qoi data directly
into an rp_image without having an intermediate step.
2025-03-17 18:10:03 -04:00
David Korth
9de5720776 [libpng] Update: v1.6.44 -> v1.6.46
[debian] copyright: Update libpng.
2025-01-27 18:22:34 -05:00
David Korth
91cd78e6d7 [debian] copyright: Remove empty "Comment:" tags. 2025-01-24 00:21:43 -05:00
David Korth
9f6016a382 [debian] copyright: Add libfmt. 2025-01-24 00:21:28 -05:00
David Korth
9d93f89428 [debian] copyright: Add src/libromdata/Other/Wim.[ch]pp . 2025-01-24 00:20:21 -05:00
David Korth
87d8c856c9 [debian] copyright: Update copyright dates for extlib/ and some src/ files. 2025-01-24 00:19:17 -05:00
David Korth
c1e83c232c [debian] copyright: Sort src/ and extlib/.
Move extlib/ before src/.

Remove src/librpbase/uvector.h. This was moved to src/uvector.h in
commit 597d0a088c
(Move uvector.h from src/librpbase/ to src/.)

..and was rewritten to derive from std::vector<> in
commit d2a752a456
(Replace ao::uvector<> with std::vector<> with a custom allocator.)

TODO: Sort the license descriptions?
2025-01-24 00:11:05 -05:00
David Korth
9dd52be639 [debian] copyright: Add copyrights for tracker-file-utils.c.
The functions in tracker-file-utils.c were mostly just copied verbatim
from tracker's upstream repository. (libtracker-miners-common)
2024-03-30 11:21:24 -04:00
David Korth
daaf1622a6 NEWS.md: Dark Mode is fully implemented.
Update copyrights for the various components:
- ysc3839 and PolyHook_2_0 are MIT.
- TortoiseGit is GPLv2.
- Notepad++ is GPLv3.
2023-11-19 12:54:16 -05:00
David Korth
48b3d8530e [microtar] Initial import of MicroTAR, a small tar implementation.
This only implements tar v7, which has some limitations.
(maximum of 100 characters for filenames, etc.)

https://github.com/rxi/microtar
License: MIT
2023-02-13 20:05:21 -05:00
David Korth
0e9d379aeb Merge remote-tracking branch 'DankRank/ne-entries' into feature/ne-entries 2022-09-18 21:13:52 -04:00
Egor
1410700f6e [libromdata] EXE_NE: use span for resident portion of the header
uses my implementation of C++20 std::span
2022-09-18 16:59:09 +03:00
David Korth
cac47ba6ed [cmake] FindGTK4.cmake: GTK4 version of CMake's FindGTK2.cmake.
No `gdk` target since libgdk was merged into libgtk.

Added libgraphene-1.0, a dependency of libgtk-4.

Removed FindPango.cmake since it's no longer needed.

[gtk4] CMakeLists.txt: Use the new GTK4 targets and get rid of the
now-unnecessary FIND_PACKAGE() calls.
2022-09-17 13:32:48 -04:00
David Korth
47e3eae558 [cmake] FindGTK3.cmake: GTK3 version of CMake's FindGTK2.cmake.
_GTK3_FIND_LIBRARY(): Remove _append_version, since GTK's versioning
has stabilized. Instead, append the version number to the library name.
This prevents mismatched version numbers betwen various GTK versions.

[gtk3] CMakeLists.txt: Use the new GTK3 targets and get rid of the
now-unnecessary FIND_PACKAGE() calls.
2022-09-17 13:32:48 -04:00
David Korth
1547c3e619 [uniwidth] Add streq.h for cjk.h.
We're not using cjk.h right now, but better to ensure that it *is* usable
in case we decide to use it later.

[debian] copyright: Update copyrights for uniwidth.
2022-08-28 21:23:45 -04:00
David Korth
e644206255 [uniwidth] Import of the uniwidth subset of gnulib.
uniwidth provides a uc_width() function, which is similar to wcwidth().
Our version removes the 'encoding' parameter, which isn't needed because
we're always using UTF-8.

Fixes #353: rpcli: bad table alignment on multibyte characters
Reported by @DankRank.
2022-08-28 18:47:34 -04:00
David Korth
1317a931d4 [librptexture] GodotSTEX: Initial implementation of ASTC 8x8 decoding.
Added the ASTC decoder from Basis Universal.

FIXME: The decoded images have swapped R and B channels.
2021-09-03 23:24:42 -04:00
David Korth
1b30d0c73e [debian] Update the copyright file.
- Updated years.
- Removed timegm.c and libjpeg-turbo.
2021-09-03 21:59:01 -04:00
David Korth
b5cac6dd3e [libromdata/tests] ImageDecoderTest: Add the TGA 2.0 conformance test suite.
utc16 and utc32 are currently disabled, since they aren't decoding
properly. (Image is completely transparent!)
2021-04-07 18:24:13 -04:00
David Korth
cdd88e2455 [rapidjson] Added rapidjson-1.1.0.
The JSON output code will be rewritten to use rapidjson, which will allow
us to add more stuff without having to worry if the resulting text has
the correct formatting.

This adds around 20 KB to the compiled binary.
2020-09-06 00:33:12 -04:00
David Korth
7b282f5d81 [minilzo] Added an internal copy of MiniLZO.
I chose MiniLZO instead of regular LZO because we only need to be able to
decompress LZO1X blocks.

[libromdata] CisoPspReader: Don't call lzo_init() if this JISO isn't
actually using LZO. Otherwise, if the DLL is missing on Windows, the
program will crash.
2020-09-05 11:05:12 -04:00
David Korth
6b99946adb [debian] copyright: Fix swapped licenses for LZ4.
LZ4's lib/ directory is BSD-2-clause.
Everything else is GPL-2+ (not GPL-2).
2020-09-05 10:46:39 -04:00
David Korth
ad476eb9a0 [lz4] Added a copy of lz4-1.9.2 for PSP CISO. 2020-09-05 02:32:50 -04:00
David Korth
81be81f4af [zstd] Added LICENSE and a section in the Debian copyright file. 2020-06-27 03:09:19 -04:00
David Korth
b675e1afdc [librpbase] Add the timegm() implementation from boost-1.72.0.
Since we can't get it working with 32-bit MinGW-w64, we'll just add our
own implementation that we'll use if timegm() and _mkgmtime() aren't
available.

TODO: Add a unit test to ensure that it's working correctly.
2020-03-08 16:30:31 -04:00
David Korth
fabe771298 [libi18n] gettext.h: Updated to the latest version from gettext-0.20.1.
No actual changes, but the license is now LGPL-2.1+ instead of GPL-3+.
The version in gettext seems to have always been LGPL, so I'm not sure
why mine was GPL.

[debian] copyright: Added gettext.h license information.
- s/poublisher/publisher/
- Use https for the GNU website.
- Added LGPL-2.1+.
- Updated LGPL-2.1 to refer to LGPL, not GPL.

This should have been done in commit b3f17f6318
([libi18n] gettext.h: Rebased to gettext-0.20.1's version.)
but it wasn't for some reason.
2020-02-05 23:41:53 -05:00
David Korth
d251edf572 [gtk] Added flags resources using glib-compile-resources.
Using GCR_Cmake macros from: https://github.com/Makman2/GCR_CMake

Currently loading the full 16x16 sprite sheet as the icon for each
dropdown entry. This is obviously wrong, but it works as a basic
test for now.

PIMGTYPE.cpp: New function PIMGTYPE_load_png_from_gresource(). This
function loads a PNG image from the glibresources and returns it as
PIMGTYPE. This does *not* use rp_image at all; it uses Cairo's
built-in PNG loading functionality.

TODO: GdkPixbuf version.
2020-01-20 00:00:00 -05:00
David Korth
e51803a4fe [librptexture] Use the PowerVR Native SDK (well, a subset) to decode PVRTC.
It seems that the R and B channels are backwards, so we'll need to fix
that next. Other than that, both 2bpp and 4bpp decoding seems to work.
(A lot better than my terrible attempt, at least.)

[cmake] options.cmake: Added an option for PVRTC. The code is licensed
under the MIT license, but we might as well provide an option for it
because it's third-party code instead of my own code.

TODO:
- Fix R/B channel ordering.
- PVRTC-II decoding?
- Add PVRTC decoding to KTX and DDS.
2019-12-10 22:01:21 -05:00
David Korth
0eeceb4ea1 debian/copyright: Added GNU gettext (GPL-3+); simplified files for many components.
The split-out listings were done to exclude custom CMakeLists.txt and
_MODIFIED_*.txt files, but those files aren't too important.
2019-08-04 15:28:07 -04:00
David Korth
bab9228cf2 [libmspack-xenia] xenia_lzx.c, xenia_lzx.h: Added Xenia's lzx_decompress() wrapper function.
Partially rewritten so it compiles as C code.

References:
- https://github.com/xenia-project/xenia/blob/master/src/xenia/cpu/lzx.cc
- https://github.com/xenia-project/xenia/blob/master/src/xenia/cpu/lzx.h

debian/copyright: Added copyright notices for these files.
2019-02-01 22:37:26 -05:00
David Korth
22ef7f5637 [extlib] libmspack-xenia: Imported libmspack code from the Xenia emulator.
This is a stripped-down version of libmspack containing only the necessary
functionality for Xbox 360 executables.

Xenia commit: e706cf0d5413c31b7e80a50411cc88cc7c71af30
License: LGPLv2.1

config.h.in: Modified for cmake; removed unnecessary checks.

debian/copyright: Added copyright information.
cmake/options.cmake: Added an ENABLE_LIBMSPACK option. (default is ON)
2019-02-01 22:17:56 -05:00
David Korth
0c1e37178d debian/copyright: Added unice68. (GPL-3+)
Updated inih and tinyxml2 copyright dates.
2018-10-04 22:40:52 -04:00
David Korth
b7b0f1ca2c debian/: Fixed several lintian warnings and errors.
source-is-missing: Several JavaScript files included with libjpeg-turbo's
HTML documentation are minimized. These files have been added to
debian/source/lintian-overrides.

debhelper-but-no-misc-depends rom-properties-all: Added ${misc:Depends}.

virtual-package-depends-without-real-package-depends: Added non-virtual
dependencies as alternatives to libcurl-dev.

syntax-error-in-dep5-copyright: Removed an extra space at the beginning
of the GPL-3 license.

TODO: Move gettext to Build-Depends-Indep for the translations
metapackage, since that will be an "All" architectures package.
2017-11-18 17:19:29 -05:00
David Korth
a58ad35aaf debian/copyright: Added copyright for uvector.h.
Added GPL-3 and GPL-3+ licenses. Updated the contact information for all
GPL licenses to use the GNU website instead of a mailing address.
2017-09-02 09:24:57 -04:00
David Korth
bbb77676a6 debian/copyright: Blank lines need a space before the '.'. 2017-07-04 16:36:09 -04:00
David Korth
36b53e5111 [libpng] Updated to libpng-1.6.30. 2017-07-04 13:26:25 -04:00
David Korth
08d0a39efb [debian] copyright: Updated the file listing and added svrplus and tinyxml2. 2017-05-20 12:56:44 -04:00
David Korth
d92fec619f [inih] ini_parse_w(): New function that takes a wchar_t* filename.
Needed for Unicode filenames on Windows.
2017-05-04 00:51:43 -04:00
David Korth
77e87cf590 [inih] New INI parser library inih.
inih version r39: https://github.com/benhoyt/inih/releases/tag/r39

License: 3-clause BSD
2017-05-04 00:16:28 -04:00
David Korth
e741decc4e [debian] copyright: Added the libjpeg-turbo copyright from Debian.
References:
- https://packages.debian.org/source/sid/libjpeg-turbo
- http://ftp-master.metadata.debian.org/changelogs//main/libj/libjpeg-turbo/libjpeg-turbo_1.5.1-2_copyright
2017-02-26 19:30:43 -05:00
David Korth
3e17536ac0 [debian] Updated changelog and copyright for rom-properties-0.9.
- Updated Egor's copyrights.
- Updated zlib dates.
- Added libpng.
2017-02-07 22:00:27 -05:00
David Korth
bd1955d98d [debian] Initial rules for Debian packaging.
Partially based on dolphin-emu:
https://packages.debian.org/sid/games/dolphin-emu

CMake's debian package generator supports generating multiple DEB
packages by component, but doesn't easily allow installing common
files in each (e.g. document files). It turns out that writing
standard Debian package rules got a lot easier now than the last
time I tried (with gens), so we'll use standard Debian rules.

NOTE: Multi-arch is enabled on the KDE 5 plugin, but not the KDE 4
plugin, since the KDE 4 plugin is installed in /usr/lib/. This
shouldn't be an issue in most cases, since most 64-bit Linux systems
don't have many 32-bit KDE applications installed.

TODO: "rom-properties" might not be a valid name due to the hyphen.
I might have to either remove the '-', change it to an underscore,
or something else...
2016-10-20 23:03:29 -04:00