[WIP do not review] Prefix sqlite3 symbols
Prefix sqlite3 symbols to integrate imodel-native libs in cesium tilers repo, as symbols collide when linking bentley and cesium libraries.
The issue only occurs on linux since we don't produce dynamic libs, windows is OK.
4 options were considered:
- rename symbols in cesium's repo: complicated as some vcpkg dependencies require vanilla sqlite3
- rename symbols in the library using objcopy, a bit sketchy, seems to work on ubuntu, but not on alma linux (missing devtools in docker image ?)
- publish dynamic libraries: not sure how complicated this would be, has implications in different parts of the pipeline (code, bentley build, strategies, release pipelines, etc...)
- rename sqlite symbols: by far the simplest option since the library is isolated so the renames are scoped to the BeSqlite library
To rename symbols efficiently I searched for all public symbols on sqlite3.o and extracted the symbol names, I then looked for all symbol occurrences in the BeSQLite folder and prefixed them using a script.
Only symbols defined in sqlite3.h are relevant, remaining symbols like sqlite cloud are not used in cesium and do not collide when linking.
/azp run imodel-native
Azure Pipelines successfully started running 1 pipeline(s).
@khanaffan thoughts?
@khanaffan thoughts?
I checked with affan offline I'm going to try a different approach before resorting to rename in the repo