Installation

Prerequisites

  • Git

  • Python 3

  • C++23 compiler

Getting the Binary Distribution

libxdaq uses Conan 2 for package management. While using libxdaq without Conan is possible, it is not recommended due to the complexity of manually managing dependencies. For more information, refer to the Conan documentation.

To install Conan, execute:

pip install --user conan

To set up the Conan profile:

Prebuilt libxdaq binaries are compiled with the exact settings listed below. Using a different compiler version, C++ standard, or standard library may result in ABI mismatches. Do not rely on conan profile detect; instead, save the profile matching your platform into ~/.conan2/profiles/ (e.g. ~/.conan2/profiles/macos-15-arm64).

macOS (Apple Silicon) — macos-15-arm64:

[settings]
arch=armv8
compiler=clang
compiler.cppstd=gnu20
compiler.libcxx=libc++
compiler.version=18
os=Macos
os.version=13.0
[conf]
tools.cmake.cmaketoolchain:generator=Ninja

macOS (Intel) — macos-15-x64:

[settings]
arch=x86_64
compiler=clang
compiler.cppstd=gnu20
compiler.libcxx=libc++
compiler.version=18
os=Macos
os.version=13.0
[conf]
tools.cmake.cmaketoolchain:generator=Ninja

Linux (x86_64) — ubuntu-22.04-x64:

[settings]
arch=x86_64
compiler=gcc
compiler.cppstd=gnu20
compiler.libcxx=libstdc++11
compiler.version=13
os=Linux
[conf]
tools.cmake.cmaketoolchain:generator=Ninja

Windows (x86_64, MSVC) — windows-2022-x64:

[settings]
arch=x86_64
compiler=msvc
compiler.cppstd=20
compiler.runtime=dynamic
compiler.version=194
os=Windows
[conf]
tools.cmake.cmaketoolchain:generator=Ninja

Then pass the profile to every Conan command, e.g.:

conan install . --profile:all macos-15-arm64 -s build_type=Release

To add the kontex-neuro Conan repository:

git clone https://github.com/kontex-neuro/kontex-conan.git
conan remote add kontex-neuro ./kontex-conan

After adding the remote, you can use libxdaq as a dependency in your project’s conanfile.txt or conanfile.py, and Conan will automatically fetch it from the kontex-neuro repository.

To update to newer package versions:

cd kontex-conan
git pull