Library Build Compile Options

Chapter Updated 2/1/23


Library Build Compile Options

OptionsDescriptionPrerequisites - Notes
XB_DEBUG_SUPPORTInclude library debugging functionality
XB_UTILS_SUPPORTBuild utility programs?
XB_EXAMPLES_SUPPORTBuild example programs?
XB_MEMO_SUPPORTInclude Memo file support?Prereq: XB_LINKLIST_SUPPORT
XB_LOGGING_SUPPORTInclude logging support?
XB_DBF3_SUPPORTInclude DBF Version III support?At lease one of XB_DBF3_SUPPORT or
XB_DBF4_SUPPORT required
XB_DBF4_SUPPORTInclude DBF Version IV support?At least one of XB_DBF3_SUPPORT or
XB_DBF4_SUPPORT required
XB_LINKLIST_SUPPORTInclude Linklist functionality?
XB_LOCKING_SUPPORTInclude File and Record locking support?Prereq: XB_LINKLIST_SUPPORT
XB_FUNCTION_SUPPORTInclude Expression Function support?
XB_EXPRESSION_SUPPORTInclude Expression support?Prereq: XB_FUNCTION_SUPPORT
and XB_LINKLIST_SUPPORT
XB_NDX_SUPPORTInclude NDX Index support?Prereq: XB_EXPRESSION_SUPPORT
XB_MDX_SUPPORTInclude MDX Index support?Prereq: XB_EXPRESSION_SUPPORT
XB_SQL_SUPPORTInclude SQL support?Prereq: XB_MEMO_SUPPORT
and XB_DBF4_SUPPORT
and XB_BLOCKREAD_SUPPORT
and XB_EXPRESSION_SUPPORT
XB_INF_SUPPORTInclude INF support (Provides auto open functions for NDX indices)
XB_FILTER_SUPPORTInclude Filter supportPrereq: XB_EXPRESSION_SUPPORT
XB_BLOCKREAD_SUPPORTInclude Block Read support





CMake

The Xbase library is built using the CMake build manager. Cmake provides the architecture for building cross platform projects with a unified build system. If you are not familiar with CMake, you can familiarize yourself with it at https://cmake.org

To modify the XBase64 compile options take the following steps:


1) Identify which platform you want to build and identify the correct build folder
/xbase64-4.x.x/build/borland5.5Older free Borland 5.5 32 bit Windows compiler
/xbase64-4.x.x/build/linux32Linux 32 bit build folder
/xbase64-4.x.x/build/linux64Linux 64 bit build folder
/xbase64-4.x.x/build/win32vsWindows 32 bit Visual Studio folder
/xbase64-4.x.x/build/win64vsWindows 64 bit Visual Studio folder
/xbase64-4.x.x/build/mac64MAC 64 but folder



2) Navigate to the appropriate folder identified in step 1. Once you are in the correct folder, verify there is a CmakeLists.txt file. That file is the main librbary build configuration file.

3) Select one if the following methods to update the config options
For Windows users, use program cmake-gui.exe
For Unix/Linux/Mac users, use program cmake-gui
For Unix command line, use program "ccmake ."
Or manually edit the CmakeLists.txt file with your favorite text editor







Debug Support (Option: XB_DEBUG_SUPPORT)

The following methods are included in the build when the XB_DEBUG_OPTION is turned on and are mainly used for library debugging purposes. The option can be safely left turned off.
The dump routines print output to sdtout or an open log file.


Method/FunctionDescription
xbDate::Dump()Dump the xbDate object internals to stdout
xbDate::DumpDateTable()Dump internal date tables to stdout
xbDbf::DumpTableLockStatus()Dump internal locking status / structures
xbExp::DumpToken()Dump expression values
xbExp::DumpTree()Dump expression token tree
xbExpNode::DumpToken()Dump expression node values
xbFile::DumpBlockToDiskDump specified block of data to a disk file
xbFile::DumpMemToDiskDump specified memory to a disk file
xbIx::DumpNodeDump index node header
xbIxMdx::DumpBlockDump MDX index block
xbIxMdx::DumpFreeBlocksDump MDX free block chain
xbIxMdx::DumpHeaderDump MDX file header info
xbIxMdx::DumpIxForTagDump MDX index keys and values for a given tag
xbIxMdx::DumpIxNodeChainDump MDX current memory node linked list for a given tag
xbIxMdx::DumpTagBlocksDump MDX blocks for a given tag
xbIxNdx::DumpHeaderDump MDX file header info
xbIxNdx::DumpIxNodeChainDump MDX current memory node linked list for a given tag
xbIxNdx::DumpNodeDump index node header
xbIxNdx::DumpTagBlocksDump NDX blocks for a given tag
xbMemoDbt3::DumpMemoFreeChain()Place holder
xbMemoDbt4::DumpMemoFreeChain()Dump list of free blocks available for reuse
xbMemoDbt4::DumpMemoInternals()Dump V4 memo file internals
xbString::Dump()Dump string internals
xbString::DumpHex()Dump string internals in hex
xbBlockRead::DumpReadBlockInternalsDump sequential read block internals