

We will refer to this extracted directory as "TeeUniverse directory"ĭownload all needed libraries and sources from the official website of TeeUniverse (ZIP file),Īnd extract the content of this archive in the TeeUniverse directory. Sources and needed librariesĭownload the sources from GitHub (ZIP file) and extract the content of this archive in your computer.
#MACPORTS MINGW ICU INSTALL#
If you are using Windows 64-bit, download this installer (official download page)Įxecute the downloaded MSI file and install CMake.ĭefaults options are fine. If you are using Windows 32-bit, download this installer (official download page). The building scripts, in turn, copy the Zlib and ICU dependencies as necessary into the folder containing built SQLite binaries.Compilation (Windows, MinGW) Installation of MinGW Installation of CMakeĭownload CMake from its official webpage. Since I have encountered problems with static linking of Zlib, I linked both ICU and Zlib dynamically. Three SQLite extensions, ICU and Zipfile/SQLAR, require external dependencies (ICU and Zlib). Dependencies together with SQLite binaries.
#MACPORTS MINGW ICU DRIVER#
The scripts provided by this project build a custom version of the SQLiteODBC driver with the current SQLite release and all integrated SQLite extensions enabled. The SQLiteODBC driver has not been updated for a while, and it embeds an outdated SQLite release with many features disabled by default.

SQLiteODBC driver embedding current SQLite release with all features enabled.Presently, the following sqlite/ext/misc extensions have been integrated: csv, fileio, normalize, regexp, series, sha, shathree, sqlar, uint, uuid, and zipfile. I have selected a few of them for further evaluation and integrated the selected extensions into a custom amalgamation, avoiding the need to load them individually and learning the SQLite building process while doing so. SQLite includes a set of extensions providing less widely used features as dynamically loadable modules, while their source is not part of the amalgamation source. Extra extensions integrated with the core.Conversely, all scripts provided by this project enable integrated extensions by default. The SQLite amalgamation incorporates mature extensions but disables most of them by default. Loadable extensions implement a large portion of SQLite functionality. Integrated extensions enabled by default.While building an STDCALL version using the MSYS2/MinGW toolset proved to be problematic, the MSVC toolset turned out to be more friendly in this aspect. The official SQLite binaries follow the CDECL calling convention and cannot be accessed from VBA-x32 directly. VBA can access the SQLite library directly, but x32 VBA on Windows can only call STDCALL routines. Enabling the ICU extension on Windows is not a straightforward process, but I could not find any adequate building/usage instruction on the Internet, so I am sharing my recipe. ICU is disabled by default, and no ICU-enabled binaries are available from the official website. Instead, the ICU extension enables this functionality. SQLite does not support insensitive string operations of non-Latin characters, which is essential for user-oriented applications. The project repository hosts several scripts producing custom SQLite/SQLiteODBC builds with extended functionality, and these scripts can be further tailored to specific needs. The project explores the building process of the SQLite library and the SQLiteODBC driver on Windows with two toolchains (MS VC++ Build Tools (MSVC) and MSYS2/MinGW) and a particular focus on customizing and extending it.
