Commit Graph

516 Commits

Author SHA1 Message Date
David Korth
ef655b3538 [zlib-ng] CMakeLists.txt: Use zlibstatic if zlib isn't found.
Needed when building the internal copy of zlib-ng as a static library.
(Not too common, but I'm trying a test build with emscripten for lulz.)
2024-03-15 23:10:15 -04:00
David Korth
4c64309bc5 Split librpcpu into librpbyteswap and librpcpuid.
librpbyteswap is still embedded into libromdata and has exported
functions.

librpcpuid is a standalone static library and will be linked into
anything that needs CPU flags, instead of using __builtin_cpu_supports().
librpcpuid's version is more efficient because it has fewer tests and
it doesn't do string comparisons.

Remove #include "byteorder.h" from a few files, since it isn't actually used:
- librpbase/img/RpPng.cpp
- librpbase/img/RpPngWriter.cpp
- libromdata/disc/xdvdfs_structs.h
- libromdata/Media/hsfs_structs.h

[gtk,librpbase] Remove #include "librpcpu/cpu_dispatch.h" from stdafx.h,
since it's only used by a few files.

[gtk3] CMakeLists.txt: Removed SSSE3 checks. SSSE3 is only used by
GdkImageConv, which is only used by the XFCE (GTK2) UI frontend.

[gtk3] CairoImageConv.hpp: Remove #include "librpcpu/cpu_dispatch.h",
since it isn't actually used here.

[xfce] GdkImageConv_ifunc.cpp, [librpbyteswap] byteswap_ifunc.c:
- #include "config.librpcpuid.h" before checking for HAVE_IFUNC.
  This was indirectly included before, but explicitly including it
  allows us to skip the other inclusion if IFUNC is not available.
2024-03-14 21:56:58 -04:00
David Korth
589e71670e [googletest] Add workaround to fix the build on Debian 8. (gcc-4.9)
gcc-4.9 doesn't support std::is_trivially_copy_constructible<T> or
std::is_trivially_destructible<T>, so use __has_trivial_copy(T)
and __has_trivial_destructor(T) on old gcc.

It's not a perfect fix, but it gets the code to compile.

(I'm using Debian 8 to test big-endian using qemu-system-ppc.
Surprisingly, it's faster than Wii U Linux, even with all of
the CPU emulation overhead!)
2024-03-10 01:44:38 -05:00
David Korth
f26c7f8970 [libpng] Add a few _M_ARM64EC checks to fix the arm64ec build. 2024-03-03 16:28:35 -05:00
David Korth
5111f099d4 [extlib] functable.c: MSVC ARM64EC build fails if intrin.h is included here for some reason...
Everything works fine if it's disabled on ARM64EC, so disable it for now.
2024-03-03 16:24:55 -05:00
David Korth
2aef3c7b06 [libpng] Add files to the repository that were missed in the v1.6.43 update commit. 2024-02-25 13:33:13 -05:00
David Korth
c66509896c [libpng] Update: v1.6.42 -> v1.6.43
Also added some LoongArch files that were missed in the v1.6.42 update.
2024-02-25 13:16:35 -05:00
David Korth
20d731aad7 [libpng] Update: v1.6.40 -> v1.6.42
[zlib-ng] Export zlib as ZLIB::ZLIB. This is needed by
libpng-1.6.42's CMakeLists.txt
2024-02-17 20:13:22 -05:00
David Korth
afbddbdf1c [uniwidth] Update to Unicode 15.1.0 and assign width 1 to prepended concatenation marks. 2024-02-17 17:04:15 -05:00
David Korth
f4eb26ac4b [inih] Update: r56 -> r58
No significant changes for rom-properties' uses.
2024-02-17 16:59:50 -05:00
David Korth
a7c539470e [zlib-ng] Update: v2.1.5 -> v2.1.6
Use of TLS for the function table, which was added in v2.1.4, has been
dropped in v2.1.6 in favor of using atomic intrinsics.
2024-01-20 13:11:47 -05:00
David Korth
efd4fd587a [extlib] minizip-ng: Disable some stuff that doesn't work on CMake 3.5. 2024-01-08 20:28:38 -05:00
David Korth
b4f2ad34e7 [minizip-ng] Update: v4.0.2 -> v4.0.4
[extlib] CMakeLists.txt: Set -DMZ_COMPAT_VERSION=120 so we get
the newer version of unzLocateFile().
2024-01-07 23:51:40 -05:00
David Korth
b071500b22 [zlib-ng] Update: v2.1.4 -> v2.1.5 2024-01-07 23:50:42 -05:00
David Korth
d806eba66f [tinyxml] Update: 9.0.0 -> 10.0.0
Upstream has added `override` keywords, so we no longer have to
disable `-Wsuggest-override`.
2024-01-07 23:50:01 -05:00
David Korth
33edbb9f9a [unice68] unice68_pack.c: Explicitly cast dreg_t conversions.
Fixes the following 64-bit MSVC warnings:

unice68_pack.c(243,43): warning C4244: '=': conversion from '__int64' to 'dreg_t', possible loss of data
unice68_pack.c(319,28): warning C4244: '=': conversion from '__int64' to 'dreg_t', possible loss of data
unice68_pack.c(325,36): warning C4244: '=': conversion from '__int64' to 'dreg_t', possible loss of data
unice68_pack.c(456,40): warning C4244: '=': conversion from '__int64' to 'dreg_t', possible loss of data
unice68_pack.c(488,36): warning C4244: '=': conversion from '__int64' to 'dreg_t', possible loss of data
2023-12-03 15:21:40 -05:00
David Korth
6996007306 [zlib-ng] Don't set CMAKE_C_STANDARD_REQUIRED.
Otherwise, zlib-ng fails to build if using gcc-7.5.0, which doesn't
support C17.

TODO: Require at least C99, but *allow* C11 and C17?
2023-11-16 19:52:57 -05:00
David Korth
8a368f8598 [extlib] zbuild.h: Also disable Z_TLS for amd64.
This matches msvc.cmake, which disables thread-safe statics for both
i386 and amd64, even though we aren't really supporting 64-bit versions
of Windows XP or Windows Server 2003.
2023-11-11 20:23:19 -05:00
David Korth
06287b0638 [zlib-ng] Disable TLS when building for Windows on i386. Windows XP has problems with it.
rp-config suddenly started crashing on XP when trying to decode PNG
images. It turns out that *something* caused zlib-ng to start using
TLS, though the code indicates it may have always used it...

It's entirely possible that this was broken on XP for quite a while,
and I just didn't notice it until now.

TLS usage was added in zlib-ng 2.1.0-beta1. rom-properties updated
from v2.0.7 to v2.1.2 in rom-properties 2.2, so the previous release
will randomly crash on Windows XP.
2023-11-09 01:22:50 -05:00
David Korth
443bffddc9 Move libwin32darkmode from extlib/ to src/.
It's going to have a lot of local customizations, so it isn't really
a vendored library anymore. Among other things, I'm converting it from
header-only to .cpp files.
2023-11-02 21:12:54 -04:00
David Korth
17fabfb98e [libwin32darkmode] Initial import of win32-darkmode as a library.
In order to use "dark mode" in Win10 1809+ in a standard Win32 program,
we have to do all sorts of weird shenanigans.

Currently, dark mode is "enabled" in rp-config, but it only works in
context menus and scroll bars.

Reference: https://github.com/ysc3839/win32-darkmode
2023-11-02 21:09:40 -04:00
David Korth
30847e895f [minizip-ng] Update: v4.0.1 -> v4.0.2 2023-11-01 00:12:15 -04:00
David Korth
266c43c23c [rapidjson] Backport a patch to fix compilation with gcc-14.
Reference: https://bugs.gentoo.org/914581
2023-11-01 00:03:41 -04:00
David Korth
f475f1ee78 [rapidjson] _MODIFIED_RAPIDJSON.txt: Mention the std::iterator inheritance change. 2023-10-21 13:55:18 -04:00
David Korth
503a0b5f0d [rapidjson] Backport a patch to disable inheritance from std::iterator.
rapidjson hasn't had a proper release since August 2016, even though it's
had patches as recently as this past September. This patch is from
December 2017 and reworks GenericMemberIterator to not inherit from
std::iterator.

This fixes several warnings in MSVC when compiling in C++17 mode:

extlib\rapidjson\include\rapidjson/document.h(111,5): warning C4996:
'std::iterator<std::random_access_iterator_tag,internal::MaybeAddConst
    <Const,rapidjson::GenericMember<Encoding,Allocator>>::Type,ptrdiff_t,
    internal::MaybeAddConst<Const,rapidjson::GenericMember<Encoding,Allocator>>
    ::Type*,internal::MaybeAddConst<Const,rapidjson::GenericMember<Encoding,Allocator>>::Type&>':
warning STL4015: The std::iterator class template (used as a base class
to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT
deprecated.) The C++ Standard has never required user-defined iterators to
derive from std::iterator. To fix this warning, stop deriving from
std::iterator and start providing publicly accessible typedefs named
iterator_category, value_type, difference_type, pointer, and reference.
Note that value_type is required to be non-const, even for constant
iterators. You can define _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING
or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to suppress this warning.
2023-10-21 13:05:35 -04:00
David Korth
803b7ca734 [zlib-ng] Update: v2.1.3 -> v2.1.4
The ARM64EC patch was merged upstream.
2023-10-21 12:34:26 -04:00
David Korth
8a6abda7c3 [zlib-ng] CMakeLists.txt: Add C17 to the known standards list.
Otherwise, it fails to build, since we're now using C17 instead of C11.
2023-10-21 12:15:24 -04:00
David Korth
563bb5f6c8 [unice68] unice68_unpack.c: depack_bytes: Check chk_dst_range(), *and* add chk_src_range().
One of the afl-fuzz tests (000003?) was failing due to the source
range being out of bounds.

Also, add assert() to the checked chk_src_range() and chk_dst_range()
functions.
2023-10-11 01:39:25 -04:00
David Korth
13363cfe69 [unice68] unice68_unpack.c, get_1_bit(): If chk_src_range() fails, return immediately.
Otherwise, attempting to dereference a5 will segfault.

This fixes all of the unice68 segfaults found with afl-fuzz so far...
at least in debug builds. Release builds are still faulting for some
reason...

TODO: Continue running afl-fuzz. I suspect I'll need to add something
similar to all uses of chk_src_range() and chk_dst_range().
2023-10-11 01:32:31 -04:00
David Korth
36fae53018 [extlib] unice68.c: Fix build.
- unice68_depacker() now has size parameters.

- Fix format string errors.
2023-10-11 01:01:01 -04:00
David Korth
2fb86861b4 [minizip-ng] Forgot to add cmake/detect-sanitizer.cmake to the repository. 2023-09-09 10:32:06 -04:00
David Korth
e241fed6e6 [minizip-ng] Fix two compile warnings.
- Define _DEFAULT_SOURCE in addition to _BSD_SOURCE.

In file included from /usr/include/bits/libc-header-start.h:33,
                 from /usr/include/stdlib.h:26,
                 from /home/david/programming/rom-properties/extlib/minizip-ng/mz.h:158,
                 from /home/david/programming/rom-properties/extlib/minizip-ng/mz_strm_mem.c:19:
/usr/include/features.h:196:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
  196 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
      |   ^~~~~~~

- mz_os_posix.c, mz_os_utf8_string_create(): `encoding` is unused.
2023-09-04 13:21:48 -04:00
David Korth
d7a7f5ca7d [minizip-ng] Update: v4.0.0 -> v4.0.1 2023-09-04 13:21:31 -04:00
David Korth
d9508735fb [googletest] library.json: Removed this file.
It was removed sometime between v1.11.0 and v1.12.0.
2023-08-12 15:18:13 -04:00
David Korth
f20a709f50 [tinyxml2] CMakeLists.txt: Set -DTINYXML2_NO_GCC_EXPORT as a public target compile definition.
This ensures any project that pulls in TinyXML2 also defines it.

I don't think this caused any actual problems, since libromdata.so wasn't
exporting TinyXML2 symbols when -DUSE_INTERNAL_XML=ON, but it does silence
a warning:

In file included from src/kde/config/AboutTab.cpp:48:0:
extlib/tinyxml2/tinyxml2.h:85:25: warning: "TINYXML2_NO_GCC_EXPORT" is not defined [-Wundef]
.#elif __GNUC__ >= 4 && !TINYXML2_NO_GCC_EXPORT
                         ^
2023-08-12 12:08:13 -04:00
David Korth
9c1db18574 Remove half-hearted support for Windows versions older than XP.
Windows 2000 support only partially worked in rp-config. The actual
shell extension component didn't work.

Support for ANSI Windows was mostly just compile-tested, and it was
becoming a burden to support something almost no one will use.

Removed most `#ifdef UNICODE` and `#ifdef _UNICODE` branches in
favor of using the Unicode path exclusively.

Removed oldwincompat, which was an attempt to get things working
properly on Windows 9x and 2000 with the MSVC 2010 runtime.
rom-properties doesn't compile with MSVC 2010 anymore, so this
probably wasn't very useful anyways.

Consolidated tstring macros in tcharx.h.

Removed GUID_fns.c since it was only useful in ANSI builds.
2023-07-31 21:32:47 -04:00
David Korth
a9a454d912 [gettext.win32] Updated to gettext-0.22.
Compiled using gcc-13.2.0 and MinGW-w64 11.0.0.

Removed the *.dll.debug files, since I'm not planning on debugging
gettext, and no one seems to care about them anyway.

NOTE: The libgnuintl-8.dll files are more than double the size of
the previous version. This might be due to using a newly-built
Gentoo crossdev MinGW-w64 toolchain on my laptop instead of the
old MinGW-w64 toolchain on Ubuntu 22.04, or it might be because
gettext-0.22 has more wchar_t functionality on Windows now.

TODO: Build for Windows on ARM using LLVM MinGW-w64.
2023-07-28 19:37:18 -04:00
David Korth
251d9060cf Fix and/or silence a bunch of MSVC warnings.
[libmspack-xenia] lzxd.c: Cast pointer differences to int.

[microtar] microtar.c: fwrite() and fread() return size_t.

[libcachecommon] CacheKeys.hpp: Silence C4834 and gcc -Wunused-result
for cacheKeys.c_str().

[libromdata] ELF.cpp: Cast val_dtag[] to uint32_t.

[libromdata] EXE_NE.cpp: Cast ao::uvector<> sizes to uint32_t.

[libromdata/tests] microtar_zstd.c: Cast toCopy to unsigned when passing
it to microtar functions.

[librpfile] RpFile_scsi_win32.cpp: Windows 8.1 SDK's ntddscsi.h doesn't
properly declare _NV_SEP_WRITE_CACHE_TYPE as an enum.

[librptext/tests] TextFuncsTest: Silence warnings about implicit
conversoin from double to unsigned int by only doing integer
calculations. (It's done at compile time, not runtime.)

[librptexture] PowerVR3, ValveVTF3: Explicitly cast some size_t
calculations to unsigned int.

[win32] KeyManagerTab: Explicitly cast the return value from
std::count_if() to int.
2023-07-23 13:06:53 -04:00
David Korth
b9dd3ed661 [googletest] CMakeLists.txt: Fix gtest's PDB filename in debug builds.
CMAKE_DEBUG_POSTFIX wasn't being set, so the PDB filename ended up being
gtestpdb_debug_postfix-NOTFOUND.pdb.

Set CMAKE_DEBUG_POSTFIX="d" and CMAKE_RELEASE_POSTFIX="" when building
with MSVC. For other compilers, both are set to "".
2023-07-16 18:47:04 -04:00
David Korth
b6e4e044cd [zstd] Handle ARM64EC as ARM64.
TODO: Send a patch upstream.
2023-07-14 20:11:55 -04:00
David Korth
cb6dbef896 [zlib-ng] Handle ARM64EC as ARM64.
TODO: Send a patch upstream.
2023-07-14 20:11:40 -04:00
David Korth
807be3a24b [zlib-ng] CMakeLists.txt: Disable a second option(ZLIB_ENABLE_TESTS).
This fixes a regression from commit 5086061436.
([zlib-ng] Update: v2.0.7 -> v2.1.2)
2023-07-01 11:31:01 -04:00
David Korth
9ec54f0346 [zlib-ng] Update: v2.1.2 -> v2.1.3 2023-07-01 02:16:57 -04:00
David Korth
c96f12a854 .clang-tidy: Enable scanning on header files.
Also disable some warnings that merely clutter up the logs and don't
help at all.

extlib/.clang-tidy: Attempt to disable header file scanning, but it
doesn't seem to work...
2023-06-30 22:56:49 -04:00
David Korth
fe305dbb0a .clang-tidy: Initial .clang-tidy file.
Still a work in progress.

extlib/.clang-tidy: Exclude extlib/.
2023-06-30 21:44:02 -04:00
David Korth
dd87260759 [libpng] Update: v1.6.39 -> v1.6.40 2023-06-26 18:01:52 -04:00
David Korth
5086061436 [zlib-ng] Update: v2.0.7 -> v2.1.2
zlib-ng v2.1 has significant performance improvements compared to v2.0.
In particular, decompression can be up to 56% faster on amd64 when
using AVX2 instructions.

FIXME: RomHeaderTest infinite-loops on Xubuntu 16.04 32-bit with 1.5 GB
RAM due to memory allocation issues. microtar_zstd.c doesn't ever receive
an "out of memory" error...
2023-06-11 12:45:30 -04:00
David Korth
9416444bb0 [minizip-ng] CMakeLists.txt: Disable project()'s DESCRIPTION and HOMEPAGE_URL.
Ubuntu 16.04 has CMake 3.5.1:
- DESCRIPTION was added in CMake 3.9.
- HOMEPAGE_URL was added in CMake 3.12.

CMake 3.5.1 incorrectly interprets these as programming languages and
gets very confused when it can't find .cmake files that describe how
to handle those "languages".

This was added in minizip-ng 4.0.0, so no rom-properties releases are
affected by this.
2023-06-11 12:24:39 -04:00
David Korth
06661cff3f [minizip-ng] CMakeLists.txt: Disable CheckSourceCompiles.
It doesn't seem like it's needed, and AppVeyor on Windows uses
cmake-3.16.2, which doesn't have it. (added in 3.19)
2023-05-21 14:01:33 -04:00
David Korth
690d214b80 [minizip-ng] Update: v3.0.10 -> v4.0.0
Major version bump due to removal of ZIP signature creation and
verification.
2023-05-21 13:10:24 -04:00
David Korth
fdf8095300 [minizip-ng] Update: v3.0.8 -> v3.0.10 2023-05-14 11:42:24 -04:00
David Korth
8b9ddc26ea [zlib-ng] CMakeLists.txt: Define GCC_WINDRES when compiling with gcc. (...well, "NOT MSVC")
Otherwise, zlib1.rc fails with a syntax error.
2023-05-07 12:50:48 -04:00
David Korth
33d7ce6a6c [gettext.win32] patches: Add missing 200-tools-gnulib-define-installdir.patch patch.
Not strictly necessary, though...
2023-05-07 12:14:22 -04:00
David Korth
e763ab74d8 [unice68] Fix testing for -Wno-empty-body on gcc-5.4. (Xubuntu 16.04)
-Wno-shift-negative-value isn't available on gcc-5.4, and since both
flags were combined into a single string, both were tested at the same
time instead of testing each flag individually.

Test the flags individually so we can suppress the -Wempty-body
warnings in unice68 on Xubuntu 16.04.
2023-05-07 12:05:57 -04:00
David Korth
089d692cc0 [zstd] Update: 1.5.4 -> 1.5.5
CheckZSTD.cmake: Update the version number here, too.
2023-04-23 11:08:39 -04:00
David Korth
624d484e0d [zlib-ng] Missed a new file: toolchain-armhf.cmake 2023-04-23 11:08:27 -04:00
David Korth
b3ffe8d26a [zlib-ng] Update: v2.0.6 -> v2.0.7
The "OS Save YMM" check hasn't been accepted upstream yet,
so we're maintaining that patch here.
2023-04-23 10:58:34 -04:00
David Korth
d9c132da80 [inih] _MODIFIED_INIH.txt: s/r52/r56/ 2023-04-23 10:38:32 -04:00
David Korth
d27a845894 [microtar] Cache the last tar header instead of reverse-seeking.
Reverse-seeking past the output buffer can take a while, and the time
increases exponentially the further we read into the file. The only
reverse seeking done by MicroTAR that causes this problem is seeking
back to the header after reading the file data.

Instead of doing that, cache the file header. This eliminates virtually
all reverse-seeking past the output buffer.

Simple benchmarks with debug builds:
- Linux (-Og): 5487 ms -> 2125 ms
- Windows (/Od): 48199 ms -> 39656 ms
2023-02-15 18:26:55 -05:00
David Korth
f3f7846988 [extlib] CMakeLists.txt: Set ZSTD_LIBRARY and ZSTD_LIBRARIES when using the internal copy of zstd. 2023-02-15 00:18:00 -05:00
David Korth
cff29bb391 [libromdata/tests] RomHeaderTest: New test for ROM headers.
This uses zstd-compressed .tar files to reduce the amount of space in
the repository.

[microtar] Use strncpy() and snprintf() to avoid buffer overflows.
This might reduce the total name length from 100 to 99, which may cause
problems later...

[libromdata/tests] microtar_zstd.c: Minimal zstd wrapper for MicroTAR.
It's not perfect, since MicroTAR occasionally seeks backwards and
zstd doesn't support reversing, but we can seek backwards in the current
input buffer most of the time.

For MegaDrive, it took around 1,080ms for uncompressed .tar and 2,680ms
for compressed .tar. The slight slowdown due to rewinding is worth the
massive space savings.

[libromdata] RomDataFactory.hpp: #include "dll-macros.hpp".
Needed for use by RomHeaderTest.

[librpbase] TextOut: Add OF_JSON_NoPrettyPrint to disable JSON
pretty-printing. This is needed for proper comparisons of the JSON data.
Parsing the JSON with RapidJSON and using operator==() didn't seem to
work, so this is the next best option.

RomData subclasses currently tested:
- Console/MegaDrive (and 32X)
- Console/N64
- Handheld/DMG

Code coverage differences:

Before: (top-level)
- Lines: 8059/51885, 15.5%
- Functions: 573/3631, 15.8%

After: (top-level)
- Lines: 9910/51885, 19.1%
- Functions: 684/3631, 18.8%
2023-02-14 23:39:08 -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
72ebce25ff [extlib] Fixed some gcc warnings.
minizip-ng:
extlib/minizip-ng/mz_os_posix.c: In function ‘mz_os_utf8_string_create’:
extlib/minizip-ng/mz_os_posix.c:94:63: warning: unused parameter ‘encoding’ [-Wunused-parameter]
   94 | uint8_t *mz_os_utf8_string_create(const char *string, int32_t encoding) {
      |                                                       ~~~~~~~~^~~~~~~~

rapidjson:
src/librpbase/TextOut_json.cpp:31:
extlib/rapidjson/include/rapidjson/document.h:102:19: warning:
‘template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference>
struct std::iterator’ is deprecated [-Wdeprecated-declarations]
  102 |     : public std::iterator<std::random_access_iterator_tag
      |                   ^~~~~~~~
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/stl_algobase.h:65,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/algorithm:60,
                 from src/librpbase/stdafx.h:28,
                 from src/librpbase/TextOut_json.cpp:10:
/usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
2023-02-11 10:04:56 -05:00
David Korth
91492b290b [zstd] common/bits.h: New file; missed this in the v1.5.4 update. 2023-02-10 18:32:35 -05:00
David Korth
a73ad060c8 [zstd] Update: 1.5.2 -> 1.5.4
TODO: zstd has its own official CMake build scripts. We should migrate
over to it sometime.
2023-02-10 18:28:12 -05:00
David Korth
cb92c10a99 [uniwidth] width[02].h: Update license headers. 2023-02-10 18:15:31 -05:00
David Korth
019a0470de Fix some build issues on macOS.
- Split debug symbols doesn't work properly due to an issue with `strip`:
  error: symbols referenced by indirect symbol table entries that can't be stripped in: [library]

- Add "arm64" for M1/M2 Macs.

- zstd: "-fdeclspec" is needed for Clang due to use of __declspec() even
  on non-MS compilers or OSes. Note that we have to check for both
  "Clang" and "AppleClang", since Apple uses its own customized version
  of LLVM/clang.

- msvc.cmake: Make sure "Clang" is quoted when STREQUAL is used.
2023-02-03 19:46:59 -05:00
David Korth
208e6d3b5d [minizip-ng] Update: v3.0.7 -> v3.0.8 2023-01-14 00:00:03 -05:00
David Korth
629f836c16 [libpng] Update: v1.6.38 -> v1.6.39 2022-12-10 16:29:26 -05:00
David Korth
ead260291e [uniwidth] Update to Unicode 15.0.0. 2022-10-16 17:27:54 -04:00
David Korth
436a0461bc [minizip-ng] Update: v1.6.37 -> v1.6.38 2022-10-16 15:22:48 -04:00
David Korth
91cb8f32e2 [minizip-ng] Update: v3.0.6 -> v3.0.7 2022-10-16 14:27:41 -04:00
David Korth
1eb71f4822 [lz4] Don't check for gcc warning flags on MSVC and vice-versa.
This merely wastes time.
2022-10-06 01:02:37 -04:00
Cameron Cawley
fb75f91ef9 zlib-ng: Check that the OS supports saving the YMM registers before enabling AVX2 2022-09-25 21:01:24 +01:00
David Korth
699fa25ab3 [basisu_astc] Fix the output stage for Big-Endian.
This fixes the last failing test in ImageDecoderTest:

TCtest_ASTC/ImageDecoderTest.decodeTest/tctest_example_astc_dds_gz_Image,
	where GetParam() = tctest/example-astc.dds.gz
2022-09-10 15:46:59 -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
554680989f [extlib] CMakeLists.txt: Set LZ4 bundled mode.
This should have been committed with the LZ4 v1.9.4 update,
but I forgot.
2022-08-26 00:50:04 -04:00
David Korth
65d74d9d0d [lz4] Update: v1.9.3 -> v1.9.4 2022-08-15 21:48:18 -04:00
David Korth
ba71f61137 [tinyxml2] CMakeLists.txt: Fix debug/release postfixes for the PDB files.
Was missing "-${tinyxml2_VERSION_MAJOR}".

Without this, "tinyxml2-9.pdb" didn't get installed in the release ZIP
file in the Windows build, and no error occurred due to the use of
"optional" to prevent errors caused by Debug vs. Release.
2022-07-28 22:36:32 -04:00
David Korth
bcb9a0e93d [inih] Forgot to add the 'fuzzing' directory in the r56 update. 2022-07-14 19:34:35 -04:00
David Korth
78efb1645e [inih] Update: r53 -> r56
Define INI_API= to disable the symbol visibility macros, since inih
should not be visible outside of libromdata.
2022-07-13 23:45:04 -04:00
David Korth
59ac405c9e [tinyxml2] Disable -Wsuggest-override warnings in gcc builds. 2022-07-06 18:06:45 -04:00
David Korth
a6a52ecc73 [PowerVR] pvrtcDecompress(): Fix byte order isuses on BE.
- Use le32_to_cpu() for the source data.
- Rearrange Pixel32 on BE.

Added non-intrinsic macros using byteorder.h. Can't easily add
intrinsic macros without CMake detection. (Might do that later.)

ImageDecoderTest BE failures before: 15
ImageDecoderTest BE failures after:  11
2022-07-05 19:58:36 -04:00
David Korth
0fde77d02f [googletest] Update: 1.11.0 -> 1.12.1
Remove the ci/ directory since it isn't needed.
2022-07-04 13:53:31 -04:00
David Korth
be8be171fe [zlib-ng] CMakeLists.txt: Disable zlibstatic on Windows and Mac OS.
This broke release builds on AppVeyor.

This fixes a regression from commit 107aa39005.
([zlib-ng] CMakeLists.txt: Hacks to get zlibstatic to work when using the internal zlib on Linux.)
2022-07-03 23:49:55 -04:00
David Korth
ded146a6c1 [libmspack-xenia] lzxd.c: Change position_slots from unsigned int to unsigned short.
Very minor space optimization. `position_slots` is only referenced once
during lzxd initialization, so this shouldn't cause a performance issue.

Code size differences: (64-bit Gentoo Linux, gcc-12.1.0, release build, no LTO)

   text    data     bss     dec     hex filename
  14091       0       0   14091    370b ./extlib/libmspack-xenia/CMakeFiles/mspack.dir/lzxd.c.o
  14053       0       0   14053    36e5 ./extlib/libmspack-xenia/CMakeFiles/mspack.dir/lzxd.c.o
    -38       0       0     -38     -26 Difference

I would have expected the difference to be 22, since position_slots has
11 elements, but I guess reducing the size may have reduced some padding
as well.
2022-07-03 12:42:39 -04:00
David Korth
28a97ccc2d [extlib] Make sure statically-linked extlibs don't export symbols in libromdata.so.
For most libraries, this merely required adding hidden visibility
flags to the CMakeLists.txt files. zlib-ng was a bit finicky,
and TinyXML2 needed a new macro, TINYXML2_NO_GCC_EXPORT.

TODO: zstd isn't currently used by libromdata.so. If I make use of it
later, either directly or indirectly via minizip, update it to not
export symbols when statically linking to it on Linux.

APNG_dlopen.c: Rework this file so it's always compiled regardless of
USE_INTERNAL_PNG and USE_INTERNAL_PNG_DLL. It exports two symbols,
APNG_ref() and APNG_unref(). When using the statically-linked libpng,
these functions are now no-ops, but they still need to be exported.
2022-06-29 22:26:24 -04:00
David Korth
107aa39005 [zlib-ng] CMakeLists.txt: Hacks to get zlibstatic to work when using the internal zlib on Linux. 2022-06-29 21:20:02 -04:00
David Korth
51b3396ed2 [tinyxml2] CMakeLists.txt: Append the SOVERSION in Windows builds.
TinyXML2 is a C++ library, so it definitely needs the SOVERSION in the
DLL name to prevent ABI mismatches.

[libwin32common] DelayLoadHelper.c: Update for TinyXML2.
TODO: Get the SOVERSIONs instead of hard-coding them where necessary.
2022-06-22 01:30:57 -04:00
David Korth
c365d41a48 [minizip-ng] Don't manually check for ZSTD using pkg_check_modules().
This causes issues on Xubuntu 16.04 if a system-wide zstd is installed
because extlib uses the internal version while minizip-ng tries using
the system version, and the system version isn't recent enough for
minizip-ng. (Requires 1.4.0; Xubuntu 16.04 has 1.3.1.)
2022-06-21 17:14:24 -04:00
David Korth
c67e06b6b2 Disable symbol visibility in several extlib modules using static linking.
PowerVR, basisu_astc, inih, libmspack-xenia, and unice68 were leaking
externally-visible symbols in the Linux builds of UI frontends.
2022-06-18 15:29:52 -04:00
David Korth
3b3d5d8b69 [minizip-ng] Update: v3.0.4 -> v3.0.6
Among other things, zip.h and unzip.h are now generated in the binary
directory, not the source directory.
2022-05-21 14:20:39 -04:00
David Korth
84922c2907 [zlib-ng] Update: v2.0.5 -> v2.0.6 2022-01-23 15:48:37 -05:00
David Korth
d01e9c7ff8 [zstd] Update: 1.5.1 -> 1.5.2
TODO: zstd has its own official CMake build scripts. We should migrate
over to it sometime.
2022-01-23 14:52:33 -05:00
David Korth
a03801ae45 [minizip-ng] Restore some rom-properties changes, including a definition for FSCTL_GET_REPARSE_POINT. 2021-12-22 23:35:21 -05:00
David Korth
c11ffb0350 [minizip-ng] Update: v3.0.2 -> v3.0.4 2021-12-22 22:52:45 -05:00
David Korth
7ab6934a26 [zstd] Update: 1.5.0 -> 1.5.1
TODO: zstd has its own official CMake build scripts. We should migrate
over to it sometime.
2021-12-22 22:48:29 -05:00
David Korth
c9c763662e PVRTDecompress.cpp: Reduce a static const array from int32_t to uint8_t; add an assert for rom-properties.
Code size difference: (64-bit Gentoo Linux, gcc-11.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
   7774       0       0    7774    1e5e PVRTDecompress.cpp.o [before]
   7738       0       0    7738    1e3a PVRTDecompress.cpp.o [after]
    -36       0       0     -36     -24 Difference
2021-09-17 20:16:14 -04:00
David Korth
1725543f79 [basisu_astc] Some micro-optimizations with loops.
Test image: ast_o_ty1_mecha02_R.tga-d8b5c072d0be593e4a0cd7abc38e96ff.astc.stex
(1024x1024, ASTC_8x8)

Valgrind event count:
- Before: 675,564,532
- After:  667,186,111
- Diff:    -8,378,421 (-1.25%)

Code size difference: (64-bit Gentoo Linux, gcc-11.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
  16603       0       0   16603    40db basisu_astc_decomp.cpp.o [before]
  16507       0       0   16507    4073 basisu_astc_decomp.cpp.o [after]
    -96       0       0     -96     -60 Difference
2021-09-09 19:14:11 -04:00
David Korth
cf6c8709df [basisu_astc] decompress(): Flatten the two loops into one; use pointer arithmetic.
Code size differences: (64-bit Gentoo Linux, gcc-11.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
  16752       0       0   16752    4170 basisu_astc_decomp.cpp.o [before]
  16603       0       0   16603    40db basisu_astc_decomp.cpp.o [after]
   -149       0       0    -149     -95 Difference
2021-09-07 01:05:31 -04:00
David Korth
14e6457753 [basisu_astc] Converted another ternary comparison tree to switch/case.
Code size differences: (64-bit Gentoo Linux, gcc-11.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
  16752       0       0   16752    4170 basisu_astc_decomp.cpp.o [before]
  16752       0       0   16752    4170 basisu_astc_decomp.cpp.o [after]
      0       0       0       0       0 Difference

No code size change, but it's definitely better code now...
2021-09-07 00:58:00 -04:00
David Korth
3f91824bc5 [basisu_astc] Converted some more 32-bit arrays to 8-bit arrays.
Code size differences: (64-bit Gentoo Linux, gcc-11.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
  16877       0       0   16877    41ed basisu_astc_decomp.cpp.o [before]
  16752       0       0   16752    4170 basisu_astc_decomp.cpp.o [after]
   -125       0       0    -125     -7d Difference
2021-09-07 00:52:29 -04:00
David Korth
9fd6094561 [basisu_astc] Convert a large ternary comparison tree to switch/case.
This makes it easier to read and reduces code size a bit.

Code size differences: (64-bit Gentoo Linux, gcc-11.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
  16889       0       0   16889    41f9 basisu_astc_decomp.cpp.o [before]
  16877       0       0   16877    41ed basisu_astc_decomp.cpp.o [after]
    -12       0       0     -12      -c Difference
2021-09-07 00:50:16 -04:00
David Korth
543bc2d582 [zlib-ng] CMakeLists.txt: Disable ZLIB_DEBUG in debug builds.
This fixes the format warnings on AppVeyor MinGW-w64, and we don't
need to enable zlib debugging, since we're not debugging zlib.
2021-09-06 04:42:24 -04:00
David Korth
5a3ec80861 Revert "[zlib-ng] deflate.c: Fix a -Wformat warning."
This is caused by ZLIB_DEBUG, so let's disable it. We don't need to
debug zlib in rom-propeties, anyway.

This reverts commit a3bd8307a0.
2021-09-06 04:40:41 -04:00
David Korth
a3bd8307a0 [zlib-ng] deflate.c: Fix a -Wformat warning.
AppVeyor's MinGW-w64 build is showing -Wformat warnings that aren't
showing up locally. Unfortunately, I can't seem to find an equivalent
for `make -k` with CMake, so I'll have to keep pushing individual
fixes until I get it fully built.
2021-09-06 03:33:23 -04:00
David Korth
86dbf36f3e [cmake] gcc.cmake: Enable -Werror for several different format warnings.
Reference: https://fedoraproject.org/wiki/Format-Security-FAQ

-Werror=format-nonliteral is *not* enabled because there are some
legitimate uses of non-literal format strings.

Separated the warning flags into multiple variables.

Updated everything to build with this change.
2021-09-06 01:41:59 -04:00
David Korth
c0cca0d723 [basisu_astc] basisu_astc_decomp.cpp: Swap the R and B channels to match the expected data formats. 2021-09-03 23:35:50 -04:00
David Korth
35fd0d7a5b [basisu_astc] Add gcc fall-through comments.
Fix copy/paste error with the _MODIFIED_BASISU.txt filename,
and add new stuff to it.
2021-09-03 23:31:02 -04:00
David Korth
ec52d1b2f7 [basisu_astc] basisu_astc_decomp.cpp: Change some arrays from 32-bit to 8-bit.
These arrays don't have values that exceed 255, so there's no point
in wasting all the space.

Code size differences: (64-bit Gentoo Linux, gcc-11.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
  23065       0       0   23065    5a19 basisu_astc_decomp.cpp.o [before]
  16889       0       0   16889    41f9 basisu_astc_decomp.cpp.o [after]
  -6176       0       0   -6176   -1820 Difference
2021-09-03 23:27:33 -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
5257a7fe45 [gettext.win32] Rebuild using -D_WIN32_WINNT=0x0501/0x0502.
Otherwise, the gettext executables don't work on Windows 7 due to
gnulib using GetSystemTimePreciseAsFileTime().
2021-09-03 18:47:06 -04:00
David Korth
33a5be5230 [gettext.win32] Rebuilt using MinGW-w64 9.0.0 and gcc-11.2.0.
Also enabled the following flags:
- large address aware
- high entropy VA (64-bit only)
- dynamic base
- nxcompat

For some reason, these weren't enabled when I built them before, which
broke when running ROM Properties from a network share on Windows 10
due to the "Prohibit Dynamic Code" policy. (Probably nxcompat.)

Also, strip the binaries in bin.i386/.
2021-09-02 18:20:46 -04:00
David Korth
880471d006 [tinyxml2] CMakeLists.txt: Fix DLL installation in Windows packaging, again.
This was originally fixed in commit b243f47341.
([tinyxml2] Fix DLL installation in Windows packaging.)

However, it regressed when TinyXML2 was upgraded to 8.1.0 in
commit 05aed01ddf.
([tinyxml2] Updated to tinyxml2-8.1.0.)

The end result was the 32-bit TinyXML2 being installed in bin/,
and the 64-bit TinyXML2 not being installed at all. This resulted in
crashes, which shouldn't have happened either; this means something
is wrong with DelayLoad, so that will need to be fixed next.

Fixes #313: tinyxml2.dll isn't packaged correctly
Reported by @ccawley2011.
2021-07-19 19:14:35 -04:00
David Korth
a646f68b06 [googletest] Update: 1.10.0 -> 1.11.0
Remove more testsuite files, since they aren't needed.
2021-06-27 02:10:30 -04:00
David Korth
ea798b2d3c [tinyxml] Update: 8.1.0 -> 9.0.0 2021-06-27 01:58:26 -04:00
David Korth
846e905815 [tinyxml2] CMakeLists.txt: Converted to CRLF to match upstream. 2021-06-27 01:55:43 -04:00
David Korth
903527db6c [zlib-ng] Update: v2.0.3 -> v2.0.5 2021-06-27 01:52:21 -04:00
David Korth
05aed01ddf [tinyxml2] Updated to tinyxml2-8.1.0. 2021-05-23 16:20:29 -04:00
David Korth
3048dff5e0 [minizip-ng] Update: v3.0.1 -> v3.0.2 2021-05-15 00:38:18 -04:00
David Korth
371435b67a [zlib-ng] Update: v2.0.2 -> v2.0.3 2021-05-15 00:38:04 -04:00
David Korth
609ff366a7 [zstd] Fix a few MSVC uninitialized variable errors due to /sdl.
extlib\zstd\compress\zstd_lazy.c(1399): error C4703: potentially uninitialized local pointer variable 'dmsTagRow' used
extlib\zstd\compress\zstd_lazy.c(1407): error C4703: potentially uninitialized local pointer variable 'dmsRow' used
2021-05-15 00:37:09 -04:00
David Korth
5885b62c9e [zstd] Update: 1.4.9 -> 1.5.0
TODO: zstd has its own official CMake build scripts. We should migrate
over to it sometime.
2021-05-15 00:04:50 -04:00
David Korth
c31c512bf9 [googletest] gtest-death-test.cc: Initialize dummy variables to 0.
gcc-11.1 complained about uninitialized variables, and googletest has
-Werror specified:

In file included from ../../extlib/googletest/googletest/src/gtest-all.cc:42:
../../extlib/googletest/googletest/src/gtest-death-test.cc: In function ‘bool testing::internal::StackGrowsDown()’:
../../extlib/googletest/googletest/src/gtest-death-test.cc:1301:24: error: ‘dummy’ may be used uninitialized [-Werror=maybe-uninitialized]
 1301 |   StackLowerThanAddress(&dummy, &result);
      |   ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../../extlib/googletest/googletest/src/gtest-death-test.cc:1290:13: note: by argument 1 of type ‘const void*’ to ‘void testing::internal::StackLowerThanAddress(const void*, bool*)’ declared here
 1290 | static void StackLowerThanAddress(const void* ptr, bool* result) {
      |             ^~~~~~~~~~~~~~~~~~~~~
../../extlib/googletest/googletest/src/gtest-death-test.cc:1299:7: note: ‘dummy’ declared here
 1299 |   int dummy;
      |       ^~~~~
cc1plus: all warnings being treated as errors
2021-04-28 01:32:12 -04:00
David Korth
eadcdf9327 Remove "/Gz" for stdcall on i386 when building with MSVC.
I tested a release build and it saved a total of 10,752 bytes.

On the other hand, it had a rather huge maintenance overhead, since I had
to ensure that all extlibs had __cdecl set up in the headers properly,
and this had to be redone on every update.

The i386 build of LZ4 on AppVeyor was failing in tests because of missing
stdcall symbols. I decided not to bother adding stdcall support to LZ4
and simply revert stdcall entirely.
2021-03-31 22:24:17 -04:00
David Korth
d3a1fc48be [zlib-ng] CMakeLists.txt: CMAKE_RELEASE_POSTFIX somehow got lost when upgrading from zlib-1.2.11 to zlib-ng 2.0.0-RC2. 2021-03-31 21:43:55 -04:00
David Korth
f8e6fb06cc [zlib-ng] Update: v2.0.1 -> v2.0.2 2021-03-25 02:00:24 -04:00
David Korth
5c16a08f6c [lz4] Remove the now-obsolete visual/ subdirectory.
The MSVC projects have been moved to build/.
2021-03-22 01:25:30 -04:00
David Korth
0f223add03 [inih] Update: r52 -> r53
Note that the only differences between r52 and r53 were in the
meson build scripts, so there are no real changes here.
2021-03-22 01:21:44 -04:00
David Korth
f2d6b4652d [lz4] Update: v1.9.2 -> v1.9.3 2021-03-22 01:18:02 -04:00
David Korth
6b50b93485 [minizip-ng] CMakeLists.txt: Use ${ZSTD_LIBRARY} for zstd instead of the specified targets.
These targets don't exist in our zstd CMakeLists.txt...
2021-03-22 00:43:28 -04:00
David Korth
8068676dad [zlib-ng] Update: v2.0.0-RC2 -> v2.0.1 2021-03-21 23:56:22 -04:00
David Korth
43976a6e3d [minizip-ng] Update: v3.0.0 -> v3.0.1 2021-03-21 23:49:03 -04:00
David Korth
549d87fd79 [minizip-ng] CMakeLists.txt: Disable target_link_directories().
This was added in CMake-3.13, and travis-ci has CMake-3.9.2.
2021-03-21 23:40:00 -04:00
David Korth
fc3c35bbff [zlib-ng] CMakeLists.txt: Install the DLL to ${DIR_INSTALL_DLL}.
Otherwise, it attempts to install to C:\Program Files\rom-properties\bin\,
which is obviously wrong.
2021-03-21 15:00:37 -04:00
David Korth
e21814a754 [zstd] zstd.h: Update some function declarations; increment version number.
I somehow missed these when updating zstd earlier. It only seemed to
break the MinGW-w64 builds, which is odd, since I would have expected
this to break every build in cases where we didn't have a system zstd...
2021-03-13 22:29:33 -05:00
David Korth
7e885ba19a [rapidjson] rapidjson.h: Set endianness for MSVC/ARM64.
Fixes #287: [Feature Request] add cross-compilation support for
Windows arm64

Reported by @dennisameling.
2021-03-13 21:57:50 -05:00
David Korth
17d33de325 [zstd] Updated: 1.4.8 -> 1.4.9 2021-03-13 21:07:16 -05:00
David Korth
c3f4db832c [zlib] Updated from v1.2.11 to zlib-ng v2.0.0-RC2.
https://github.com/zlib-ng/zlib-ng
2021-02-18 23:50:27 -05:00
David Korth
7d302b51c9 [minizip] Updated from v2.10.5 to minizip-ng 3.0.0.
As of 3.0.0, the minizip fork is now called minizip-ng.

https://github.com/zlib-ng/minizip-ng
2021-02-17 18:38:19 -05:00
David Korth
4da7a51056 [zstd] Updated from 1.4.5 to 1.4.8. 2021-02-17 18:34:16 -05:00
David Korth
860288ab05 [minizip] Updated to v2.10.5 from the MiniZip fork.
https://github.com/nmoinvaz/minizip

NOTE: iconv support is disabled for now, since it isn't needed by any
of the test cases. It may be re-enabled later if minizip is needed for
the main program.
2020-12-19 11:25:05 -05:00
David Korth
70e31278ba [inih] Updated to inih-r52. 2020-11-01 13:17:49 -05:00
David Korth
991618e6c6 [extlib] The PDBs *do* need to be marked as OPTIONAL.
We're technically installing both the Debug and Release files, but only
one will exist at any given time, so it has to be OPTIONAL.

[libpng] CMakeLists.txt: Minor formatting improvements.
2020-09-20 15:02:50 -04:00
David Korth
777897befa [extlib] Make sure LZ4 and MiniLZO are installed in the Windows package.
Also install the .pdb file.
2020-09-20 14:55:13 -04:00
David Korth
13798dc609 Revert "Use a static library for LZ4 on Mac OS X."
This reverts commit 0bfdc891b5.

It *still* links to a shared library, even though I told it not to...
2020-09-07 12:22:04 -04:00
David Korth
0bfdc891b5 Use a static library for LZ4 on Mac OS X.
The unit tests aren't finidng the shared library.
2020-09-07 11:44:18 -04:00
David Korth
3bb4d04ade [lz4] CMakeLists.txt: Only set the dllexport/dllimport flags on Windows.
This broke the Mac OS X build:

In file included from /Users/travis/build/GerbilSoft/rom-properties/extlib/lz4/lib/lz4.c:110:

/Users/travis/build/GerbilSoft/rom-properties/extlib/lz4/contrib/cmake_unofficial/../../lib/lz4.h:119:1: error: '__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributes

LZ4LIB_API int LZ4LIB_CALL LZ4_versionNumber (void);  /**< library version number; useful to check dll version */

^

/Users/travis/build/GerbilSoft/rom-properties/extlib/lz4/contrib/cmake_unofficial/../../lib/lz4.h💯22: note: expanded from macro 'LZ4LIB_API'

.#  define LZ4LIB_API __declspec(dllexport) LZ4LIB_VISIBILITY

                     ^
2020-09-07 05:01:12 -04:00
David Korth
97822523d6 [win32] RP_ShellPropSheetExt: Added copy to clipboard actions.
- TextOut: Added CRLF linebreak options, which are needed for
  copying to clipboard on Windows.

[rapidjson] prettywriter.h: Added a CRLF linebreak option.
2020-09-06 00:33:13 -04:00