firebase / firebase/firebase-cpp-sdk

[Bug] Windows Server 2016+2019 missing icu.dll

Abierto
#1,541 2 comentarios 2 reacciones 0 asignados Ver en GitHub
needs-triage new type: question
Lenguaje dominante
C++
Estrellas
326
Forks
137
Merge medio
3 d 9 h
PR fusionados (30 d)
5

Descripción

### [REQUIRED] Please fill in the following fields:

Since https://github.com/firebase/firebase-cpp-sdk/pull/1332, support for Windows Server 2016+2019 was broken due to a new dependency on icu.dll, which is only available on Windows 10, Windows 11, and Windows Server 2022.

### [REQUIRED] Please describe the issue here:

Two symbols are now imported from icu.dll (ucal_getTimeZoneIDForWindowsID and u_errorName). The relevant code is in [app/src/locale.cc](https://github.com/firebase/firebase-cpp-sdk/blob/3fd90d5d8a98da064e847a0dd44e3dae9407e8e8/app/src/locale.cc#L150).

#### Steps to reproduce:

Build for Windows, try running on Windows Server 2016 or 2019, hit the following issue:

![image](https://github.com/firebase/firebase-cpp-sdk/assets/295841/229aa3ec-4bae-4645-be1d-76fc00892e7d)

#### Relevant Code:

The imported function is only used for time zone id mapping, the code should be modified to either use a different Windows API, or try loading icu.dll dynamically (LoadLibrary+GetProcAddress) with a proper fallback when the DLL and function is absent.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.