From caf1283f0a14ecae29c7ca0db7298489e13b9afc Mon Sep 17 00:00:00 2001 From: Dmytro Bogovych Date: Fri, 1 Nov 2024 19:19:41 +0300 Subject: [PATCH] - fix UUID generation on Android --- src/engine/helper/HL_Uuid.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/engine/helper/HL_Uuid.cpp b/src/engine/helper/HL_Uuid.cpp index 3baf7f0e..e8531e46 100644 --- a/src/engine/helper/HL_Uuid.cpp +++ b/src/engine/helper/HL_Uuid.cpp @@ -3,7 +3,10 @@ #include #include +#if defined(TARGET_LINUX) #define UUID_SYSTEM_GENERATOR +#endif + #include "uuid.h" Uuid::Uuid() @@ -14,8 +17,18 @@ Uuid::Uuid() Uuid Uuid::generateOne() { Uuid result; - +#if defined(TARGET_LINUX) auto id = uuids::uuid_system_generator{}(); +#else + std::random_device rd; + auto seed_data = std::array {}; + std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd)); + std::seed_seq seq(std::begin(seed_data), std::end(seed_data)); + std::mt19937 generator(seq); + uuids::uuid_random_generator gen{generator}; + + auto id = gen(); +#endif memcpy(result.mUuid, id.as_bytes().data(), id.as_bytes().size_bytes()); return result; }