diff --git a/premake5.lua b/premake5.lua index 0a36f5da3..a5508ba75 100644 --- a/premake5.lua +++ b/premake5.lua @@ -145,6 +145,10 @@ filter({"platforms:Linux", "language:C++", "toolset:clang"}) "deprecated-volatile", "switch", "deprecated-enum-enum-conversion", + "attributes", + }) + removeflags({ + "FatalWarnings" }) filter({"platforms:Linux", "language:C++", "toolset:clang", "files:*.cc or *.cpp"}) buildoptions({ diff --git a/src/xenia/app/emulator_window.cc b/src/xenia/app/emulator_window.cc index f2238d41e..1b78f712a 100644 --- a/src/xenia/app/emulator_window.cc +++ b/src/xenia/app/emulator_window.cc @@ -1889,8 +1889,7 @@ void EmulatorWindow::DisplayHotKeysConfig() { if (!guide_enabled) { pretty_text = std::regex_replace( - pretty_text, - std::regex("Guide", std::regex_constants::syntax_option_type::icase), + pretty_text, std::regex("Guide", std::regex_constants::icase), "Back"); } diff --git a/src/xenia/apu/audio_media_player.h b/src/xenia/apu/audio_media_player.h index 0b2dc30c8..ab5201ad5 100644 --- a/src/xenia/apu/audio_media_player.h +++ b/src/xenia/apu/audio_media_player.h @@ -10,6 +10,7 @@ #ifndef XENIA_APU_AUDIO_MEDIA_PLAYER_H_ #define XENIA_APU_AUDIO_MEDIA_PLAYER_H_ +#include "xenia/apu/audio_driver.h" #include "xenia/apu/audio_system.h" #include "xenia/kernel/xam/apps/xmp_app.h" diff --git a/src/xenia/apu/xma_context.h b/src/xenia/apu/xma_context.h index c08d36753..b5cda436b 100644 --- a/src/xenia/apu/xma_context.h +++ b/src/xenia/apu/xma_context.h @@ -160,23 +160,23 @@ static_assert_size(Xma2ExtraData, 34); class XmaContext { public: - static const uint32_t kBytesPerPacket = 2048; - static const uint32_t kBitsPerPacket = kBytesPerPacket * 8; - static const uint32_t kBitsPerHeader = 32; + static constexpr uint32_t kBytesPerPacket = 2048; + static constexpr uint32_t kBitsPerPacket = kBytesPerPacket * 8; + static constexpr uint32_t kBitsPerHeader = 32; - static const uint32_t kBytesPerSample = 2; - static const uint32_t kSamplesPerFrame = 512; - static const uint32_t kSamplesPerSubframe = 128; - static const uint32_t kBytesPerFrameChannel = + static constexpr uint32_t kBytesPerSample = 2; + static constexpr uint32_t kSamplesPerFrame = 512; + static constexpr uint32_t kSamplesPerSubframe = 128; + static constexpr uint32_t kBytesPerFrameChannel = kSamplesPerFrame * kBytesPerSample; - static const uint32_t kBytesPerSubframeChannel = + static constexpr uint32_t kBytesPerSubframeChannel = kSamplesPerSubframe * kBytesPerSample; // static const uint32_t kOutputBytesPerBlock = 256; // static const uint32_t kOutputMaxSizeBytes = 31 * kOutputBytesPerBlock; explicit XmaContext(); - ~XmaContext(); + virtual ~XmaContext(); virtual int Setup(uint32_t id, Memory* memory, uint32_t guest_ptr) { return 0; diff --git a/src/xenia/apu/xma_context_new.h b/src/xenia/apu/xma_context_new.h index 6a6ca5757..71f9b9227 100644 --- a/src/xenia/apu/xma_context_new.h +++ b/src/xenia/apu/xma_context_new.h @@ -45,28 +45,28 @@ static constexpr int kIdToSampleRate[4] = {24000, 32000, 44100, 48000}; class XmaContextNew : public XmaContext { public: - static const uint32_t kBytesPerPacket = 2048; - static const uint32_t kBytesPerPacketHeader = 4; - static const uint32_t kBytesPerPacketData = + static constexpr uint32_t kBytesPerPacket = 2048; + static constexpr uint32_t kBytesPerPacketHeader = 4; + static constexpr uint32_t kBytesPerPacketData = kBytesPerPacket - kBytesPerPacketHeader; - static const uint32_t kBitsPerPacket = kBytesPerPacket * 8; - static const uint32_t kBitsPerPacketHeader = 32; - static const uint32_t kBitsPerFrameHeader = 15; + static constexpr uint32_t kBitsPerPacket = kBytesPerPacket * 8; + static constexpr uint32_t kBitsPerPacketHeader = 32; + static constexpr uint32_t kBitsPerFrameHeader = 15; - static const uint32_t kBytesPerSample = 2; - static const uint32_t kSamplesPerFrame = 512; - static const uint32_t kSamplesPerSubframe = 128; - static const uint32_t kBytesPerFrameChannel = + static constexpr uint32_t kBytesPerSample = 2; + static constexpr uint32_t kSamplesPerFrame = 512; + static constexpr uint32_t kSamplesPerSubframe = 128; + static constexpr uint32_t kBytesPerFrameChannel = kSamplesPerFrame * kBytesPerSample; - static const uint32_t kBytesPerSubframeChannel = + static constexpr uint32_t kBytesPerSubframeChannel = kSamplesPerSubframe * kBytesPerSample; - static const uint32_t kOutputBytesPerBlock = 256; - static const uint32_t kOutputMaxSizeBytes = 31 * kOutputBytesPerBlock; + static constexpr uint32_t kOutputBytesPerBlock = 256; + static constexpr uint32_t kOutputMaxSizeBytes = 31 * kOutputBytesPerBlock; - static const uint32_t kLastFrameMarker = 0x7FFF; - static const uint32_t kMaxFrameSizeinBits = 0x4000 - kBitsPerPacketHeader; + static constexpr uint32_t kLastFrameMarker = 0x7FFF; + static constexpr uint32_t kMaxFrameSizeinBits = 0x4000 - kBitsPerPacketHeader; explicit XmaContextNew(); ~XmaContextNew(); diff --git a/src/xenia/base/threading_posix.cc b/src/xenia/base/threading_posix.cc index 733592800..b35a30e73 100644 --- a/src/xenia/base/threading_posix.cc +++ b/src/xenia/base/threading_posix.cc @@ -533,6 +533,10 @@ class PosixCondition : public PosixConditionBase { } virtual ~PosixCondition() { + // FIXME(RodoMa92): This causes random crashes. + // The proper way to handle them according to the webs is properly shutdown + // instead on relying on killing them using pthread_cancel. + /* if (thread_ && !signaled_) { #if XE_PLATFORM_ANDROID if (pthread_kill(thread_, @@ -548,6 +552,7 @@ class PosixCondition : public PosixConditionBase { assert_always(); } } + */ } bool Signal() override { return true; } diff --git a/third_party/zarchive.lua b/third_party/zarchive.lua index 0abe4f724..4aa9ec820 100644 --- a/third_party/zarchive.lua +++ b/third_party/zarchive.lua @@ -4,6 +4,7 @@ project("zarchive") kind("StaticLib") language("C++") links({ + "zstd", }) defines({ "_LIB", diff --git a/third_party/zstd.lua b/third_party/zstd.lua index f273a6748..1b12581d1 100644 --- a/third_party/zstd.lua +++ b/third_party/zstd.lua @@ -75,6 +75,8 @@ function project_zstd(dir, compression, decompression, deprecated, dictbuilder, defines { 'XXH_NAMESPACE=ZSTD_', + -- See here on why: https://gitlab.kitware.com/cmake/cmake/-/issues/25744 + 'ZSTD_DISABLE_ASM=1', 'ZSTD_LEGACY_SUPPORT=' .. legacy } end