Skip to content

Build Configuration

CMake Flags

Flag Default Description
CMAKE_BUILD_TYPE Release Release or Debug
TURBOLYNX_PORTABLE_DISK_IO OFF on Linux, ON on macOS Use the portable synchronous disk I/O backend
ENABLE_TCMALLOC ON Link TCMalloc (requires libgoogle-perftools-dev)
BUILD_UNITTESTS ON Build Catch2 unit test binary
BUILD_TOOLS ON Build the CLI binary (turbolynx)
BUILD_PYTHON OFF Build the Python bindings
NATIVE_ARCH ON Compile with -march=native
ENABLE_AVX ON Enable AVX2 SIMD instructions
ENABLE_TBB ON Enable Intel TBB
ENABLE_OPENMP ON Enable OpenMP
TBB_TEST ON Build vendored oneTBB tests (recommend OFF)

Release (Linux fast path)

cmake -GNinja \
      -DCMAKE_BUILD_TYPE=Release \
      -DENABLE_TCMALLOC=OFF \
      -DBUILD_UNITTESTS=OFF \
      -DTBB_TEST=OFF \
      -B build
cmake --build build

Release (portable/macOS)

cmake -GNinja \
      -DCMAKE_BUILD_TYPE=Release \
      -DTURBOLYNX_PORTABLE_DISK_IO=ON \
      -DENABLE_TCMALLOC=OFF \
      -DBUILD_UNITTESTS=OFF \
      -DTBB_TEST=OFF \
      -B build-portable
cmake --build build-portable

Debug (with tests)

cmake -GNinja \
      -DCMAKE_BUILD_TYPE=Debug \
      -DENABLE_TCMALLOC=OFF \
      -DBUILD_UNITTESTS=ON \
      -DTBB_TEST=OFF \
      -B build-debug
cmake --build build-debug

Bundled Dependencies

The following are fetched and compiled automatically at configure time. No manual installation is required.

Library Version Purpose
TBB (oneTBB) v2021.10.0 Thread task scheduler
hwloc 2.8.0 CPU topology / thread affinity
GP-Xerces greenplum fork XML parsing (ORCA optimizer)

Additionally, all libraries in third_party/ are compiled from source as part of the build: antlr4, simdjson, linenoise, spdlog, fmt, re2, fastpfor, nlohmann/json, utf8proc, yyjson, cuckoofilter, and more.