Implements the basic functionality of cellMusicDecode.
Works with Space Invaders (if you add the list selection from the other PR).
Probably fixes SSX custom music.
LLVM fails to build on Windows with C++ 20 standard. When building LLVM
on Windows, we use C++ 14 already. This commit changes the c++ standard
to be picked by each subdirectory rather than the standard being picked
by the root level cmake file.
It only installs a .pc file and nothing cmake, so we can use pkg-config
instead.
https://github.com/wolfSSL/wolfssl/pull/4043 is required when building
wolfssl against gcc 11.
Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
If the system has libusb installed but USE_SYS_LIBUSB is false, the
static libusb will link against the system libusb (as pkg_check_modules
sets LIBUSB_LIBRARIES, and 3rdparty/libusb_cmake/libusb.cmake links the
usb-1.0-static target with LIBUSB_LIBRARIES). Unset LIBUSB_LIBRARIES to
avoid this when using the libusb submodule.
May resolve some outstanding issues around libusb/hidapi (i.e. DS4 not being released on rpcs3 shutdown etc..) or may not.
Fixes three outstanding compile warnings on non-Windows OS... introduces a few more warnings in WindowsOS (issue raised upstream with libusb around WINAPI_CHECK macro)
Re-ordered the 3rd party CMake so libusb is in file order above hidapi (just to have document flow match logical flow)
Also took this opportunity to remove the YAML INSTALL action (by setting YAML_CPP_INSTALL to OFF)
Provided capability to use system library for libusb by providing USE_SYS_LIBUSB option to CMAKE
Tested under:
- [X] Windows 10 2004 OS with DS4 controller
- [X] Windows 10 2004 OS with GCon3 controller
- [X] Linux (Mint 20) with DS4 controller
Silence the wolf from telling us:
#warning "For timing resistance / side-channel attack prevention consider using harden options"
Also removed duplicate defines for Visual Studio project, to remove some additional warnings there.
Turns out the current version of clang doesn't support the [[likely]] and [[unlikely]] attributes, so to ensure good performance, we'll be switching to gcc, at least for now.