Build from Source
Tidecoin Core uses CMake. Developers normally build from source so they can run unit tests, functional tests, fuzzers, and local instrumentation.
This page is contributor-facing. Operators building a deployment node should use Node & Operations / Build from Source.
Minimal Build
From the Tidecoin Core repository:
cmake -B build
cmake --build build -j"$(nproc)"Useful binaries are written under build/bin/, including tidecoind,
tidecoin-cli, tidecoin-qt when GUI support is enabled, and test binaries
where configured.
Toolchain Baseline
| Dependency | Notes |
|---|---|
| CMake | Tidecoin docs use CMake 3.22 or newer as the baseline. |
| C++ compiler | GCC 11.1 or newer, or Clang 16 or newer. |
| Python 3 | Required for functional tests and scripts. |
| pkg-config | Used by dependency discovery on many Unix systems. |
| Qt | Optional GUI build dependency. |
| SQLite | Wallet dependency where descriptor wallet support needs it. |
| ZeroMQ | Optional notification interface. |
| Cap’n Proto | Optional IPC-related dependency. |
Check ../tidecoin/doc/dependencies.md and platform-specific build docs when a
system package is missing.
Common CMake Options
| Goal | Example |
|---|---|
| Configure default build | cmake -B build |
| Build | cmake --build build -j"$(nproc)" |
| Use a preset | cmake --preset=<preset> |
| Build libFuzzer target | cmake --preset=libfuzzer |
| Disable optional components | Pass the relevant -D...=OFF option from CMake help or presets |
| Inspect cache | cmake -LAH build |
Do not guess option names in docs or scripts. Use cmake -LAH build,
CMakePresets.json, and the repository build docs as the source of truth.
Run Tests After Building
ctest --test-dir build
build/test/functional/test_runner.pyFor wallet-heavy unit suites that are intentionally gated:
TIDECOIN_RUN_WALLET_TESTS=1 ./build/bin/test_tidecoin --run_test=wallet_testsFuzzer Build
For libFuzzer:
cmake --preset=libfuzzer
cmake --build build_fuzz
FUZZ=process_message build_fuzz/bin/fuzzUse Fuzzing before adding or changing fuzz targets.
Common First-Build Problems
| Symptom | Check |
|---|---|
| CMake cannot find a package | Install the dependency or disable the optional feature. |
| Functional tests cannot find binaries | Build first and run from the repository root or pass the correct config file. |
| ZMQ tests fail | Install Python ZMQ bindings and build with ZMQ support. |
| IPC tests fail | Install pycapnp and Cap’n Proto dependencies. |
| Wallet tests are missing | Check wallet build options and gated wallet test environment variables. |
See also: Testing, Fuzzing, Architecture, Node Build Guide.