firebase / firebase/firebase-cpp-sdk

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

Ouverte
#1,541 2 commentaires 2 réactions 0 personnes assignées Voir sur GitHub
needs-triage new type: question
Langage dominant
C++
Étoiles
326
Forks
137
Merge moyen
3 j 9 h
PR mergées (30 j)
5

Description

### [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.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.