# Building Nerbus Wallet ## Windows x64 Install Visual Studio C++ Build Tools, Qt 6.6.2 MSVC x64, CMake, and Ninja. From PowerShell in this repository, download the pinned libsodium dependency: ```powershell powershell -ExecutionPolicy Bypass -File scripts/fetch-sodium.ps1 ``` From an x64 Visual Studio developer prompt: ```bat cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=C:/Qt/6.6.2/msvc2019_64 cmake --build build --parallel 2 C:/Qt/6.6.2/msvc2019_64/bin/windeployqt.exe --release --compiler-runtime build/nerbus-qt.exe copy nerbus.svg build\nerbus.svg ``` Copy the separately built `nerbus-wallet-core.exe` beside `nerbus-qt.exe`. `libsodium.dll` is copied by CMake. Distribute the complete runtime folder. ## Linux x86_64 ```sh sudo apt-get install build-essential cmake pkg-config qt6-base-dev libqt6svg6-dev libsodium-dev cmake -S . -B build -DCMAKE_BUILD_TYPE=Release cmake --build build -j2 cp nerbus.svg build/ ``` Place a native `nerbus-wallet-core` beside `nerbus-qt`. Install Qt runtime dependencies or bundle them with the desktop application. The prepared Linux package targets Ubuntu 22.04 / glibc 2.35 and uses X11 or XWayland. ## Offline signing helper Clone and build [Nerbus Core](https://git.nerbus.com/nerbus/nerbus) for the target platform first. `core/nerbus-wallet-core.cpp` replaces the transaction utility's entry point and includes its original source. The detailed procedure is in [BUILD.txt](BUILD.txt), section OFFLINE NRB CORE COMPONENT. Keep this helper separate from the standard `nerbus-tx` utility and restore the original source and utility after compiling it. Windows dependencies must be built with MinGW; the GUI uses MSVC, and they communicate over an anonymous pipe. The server bridge is in `server/`. It is not required for local address creation.