How to build Tahiti

Tahiti is a Windows-only C++ / MFC application built with CMake and Visual Studio, out of source.

Prerequisites

  • Visual Studio 2015

  • CMake

  • NSPR + NSS (see below)

  • BCGControlBar Professional (see below)

  • CrashReporter (optional, USE_CRASHREPORTER)

  • WiX Toolset v3.10 / v3.11 and the Windows SDK scripts WiSubStg.vbs / WiLangId.vbs for the installer (BUILD_SETUP_WIX3)

  • a JDK: the barcode reader (ImageProcessing/Tasman) is compiled against the JNI headers and loads the JVM at run time

OpenCV and IPP are optional leftovers; nothing in the tree requires them.

Build steps

  1. Copy Scripts/build.bat.template into your build directory as build.bat.

  2. Edit the variables at the top: BUILD_TYPE (Debug | Release | RelWithDebInfo), PLATFORM (the Visual Studio generator), TAHITI_SOURCE and the SDK paths BUILD_BCGP_DIR, BUILD_PXCVIEW_DIR, BUILD_PDFXEDITORSDK_DIR, _NSPR_*, _NSS_* and JAVA_HOME (CMake’s FindJNI looks for the JNI headers there). WINSDK_SIGNTOOL / SIGNTOOL_PARAMETERS are needed only for SIGNCODE_ENABLED.

  3. Run build.bat to generate the solution, then build the generated .sln.

Feature toggles are -D cache options wired in the root CMakeLists.txt: BUILD_TAHITI, BUILD_SCAN, BUILD_DAMIS, BUILD_COMPONENTS, BUILD_MAILVIEW, BUILD_APP_PLUGINS, BUILD_TAHITISERVER, BUILD_FORMS, BUILD_REPORTER, USE_VLD, USE_CRASHREPORTER. The former BUILD_DOC switch (DocBook/Doxygen) was removed in 2026-09; documentation lives in this repository.

Notes:

  • Source files are listed explicitly in each module’s CMakeLists.txt; there is no globbing. Adding a .cpp or .h always means editing that CMakeLists.txt too.

  • Externals/ is vendored and built as part of the tree. Do not substitute system packages.

  • CMake is old-style (cmake_minimum_required(VERSION 2.8.0), uppercase SET / IF / ENDIF). Match the surrounding style.

  • The product version lives in the root CMakeLists.txt (TAHITI_VERSION_MAIN / _MIDDLE / _LOWER / _MINOR). Release commits contain nothing but that bump, with the version as the commit message.

  • Since 7.7 a single .msi per product and architecture contains all languages; the Czech transform is embedded with WiSubStg.vbs and WiLangId.vbs from the Windows SDK.

Building NSPR + NSS

  1. Download the Mozilla build tools.

  2. Download NSS with NSPR, e.g. https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_23_RTM/src/nss-3.23-with-nspr-4.12.tar.gz

  3. Run the Mozilla build tools shell (start-msvc10.bat or start-msvc10-x64.bat).

  4. Switch to the directory with NSS, e.g. cd /c/toolkits/nss/nss-3.23/nss.

  5. Build:

    • x86 (32 bit): make nss_build_all

    • x64 (64 bit): make USE_64=1 nss_build_all

For details see the Mozilla NSS build instructions and NSPR build instructions.

Building BCGControlBar Professional

  1. Install BCG into the standard directory; nothing should be built by the installer.

  2. Open BCGControlBarPro\BCGCBPro\BCGCBPro100.sln.

  3. Build / Batch Build the configurations Unicode Release 32 and Unicode Release 64.

Building CrashReporter

  1. Check out CrashReporter from the LightComp repository.

  2. Run CMake and configure the project.

  3. Build the generated solution.