The icuconfig.xml file specifies the location of ICU executable and data components.
ICU is packaged as three libraries, "icuuc" and "icuin" libraries that export the API, and larger "icudata" library with data that the other two libraries depend on. The icuconfig.xml file tells the dtSearch Engine where to find these libraries.
The icuconfig.xml file has separate sections for each platform, so only one version of the file is needed to cover all supported platforms. The icuconfig.xml file that comes with dtSearch is set up for the recommended deployment option, which is to install the ICU libraries included with dtSearch in the same folder as the dtSearch Engine. For more information, see ICU Deployment.
For other installation options, the icuconfig.xml file lets you specify the names of the components to be loaded for each platform. The file can include multiple options for a platform, which dtSearch will try in order. You can specify either a specific path or just a library name.
If the name includes a \ or /, it is interpreted as a specific path relative to the location of the icuconfig.xml file, so ./icuuc63.dll refers to a DLL that is in the same folder as icuconfig.xml.
A library name like "icuuc.dll" must be in a location where it will be found using the platform's search paths for dynamic libraries.
For each platform listed in the icuconfig.xml file, the following can be specified:
<Platform> The name of the platform (Win32, Win64, Win, Linux32, Linux64, or Linux). dtSearch will check each platform in order, so under 64-bit Windows dtSearch will look for any entries in the list that match "Win64" or "Win".
<PlatformVersion> For Windows platforms, the minimum version supported. This value is a single integer specifying the major version (5=XP, 6=Vista, 7=Windows 7, 8=Windows 8, 10=Windows 10).
<Library> The name of the "icuuc" library to load.
<IntLibrary> The name of the "icuin" library to load.
<DataLibrary>The name of the "icudata" library to load.
<IcuVersion> The ICU version number
ICU can be built with its API functions either numbered using the library version number, or without version numbering. dtSearch checks for both styles when it loads the library and will automatically handle either format.