Skip to content

Commit 990bf7c

Browse files
committed
Update CHANGELOG.md
1 parent b481a16 commit 990bf7c

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11
# Changelog
22

3+
## 5.2.0
4+
5+
### Added
6+
7+
- **Shared library support** — The SDK can now be built as a shared library (`.dll`/`.so`/`.dylib`) via `-DGA_SHARED_LIB=ON` (or `--shared` in `setup.py`). Primarily aimed at Unity native plugin usage.
8+
- **Fully exported C extern API** — All `GameAnalyticsExtern` functions now carry the correct `GA_API` export/import macro (`__declspec(dllexport)` on Windows, `__attribute__((visibility("default")))` on Linux/macOS).
9+
- **New exported C API functions**: `gameAnalytics_configureBuildPlatform`, `gameAnalytics_configureCustomLogHandler` (with `GALogHandler` callback and `GALoggerMessageType` enum), `gameAnalytics_disableDeviceInfo`.
10+
- **Shared library sample** — New `sample_shared/` project demonstrating shared lib integration.
11+
- **`setup.py` `--shared` and `--compiler` flags** — Linux builds can now select `gcc` or `clang`; all platforms support `--shared` to produce a shared library.
12+
- **Null-safe C string handling** — All extern functions guard against null `const char*` inputs via a `safeString()` helper, preventing crashes from managed runtimes (e.g. Unity P/Invoke).
13+
- **Cross-platform `ga_strndup`** — Replaced POSIX-only `strndup` with a portable implementation, fixing MSVC/Windows compilation.
14+
15+
### Fixed
16+
17+
- **Linux: infinite signal loop freeze** — Signal handlers now store per-signal previous handlers in a per-signal array instead of a single shared variable, preventing re-entrant signal delivery from looping infinitely when an exception is raised.
18+
- **macOS: equivalent signal handler isolation** — Same signal handler fix applied to the macOS platform layer.
19+
- **Windows MSVC runtime library** — Switched to the `CMAKE_MSVC_RUNTIME_LIBRARY` CMake abstraction (replaces manual `/MD`/`/MT` flags), correctly handling Debug/Release and static/shared runtime selection.
20+
21+
322
# 5.1.0
423

524
### Added

0 commit comments

Comments
 (0)