master repository for XO: cooperating set of C++ libraries for deterministic simulation
  • C++ 87.5%
  • C 6.2%
  • CMake 3.4%
  • Nix 1%
  • Objective-C++ 0.6%
  • Other 1.2%
Find a file
Roland Conybeare 2329d118c2 Add 'xo-cmake/' from commit 'f510700b99'
git-subtree-dir: xo-cmake
git-subtree-mainline: c88807597e
git-subtree-split: f510700b99
2025-05-10 16:23:49 -05:00
pkgs + xo-cmake build 2025-05-10 16:23:30 -05:00
xo-cmake Add 'xo-cmake/' from commit 'f510700b99' 2025-05-10 16:23:49 -05:00
.gitignore + .gitignore 2025-05-10 12:17:19 -05:00
CMakeLists.txt + xo-cmake build 2025-05-10 16:23:30 -05:00
default.nix + xo-cmake build 2025-05-10 16:23:30 -05:00
README.md + README 2025-05-10 12:15:55 -05:00

Introduction

Local nix build for xo libraries. Intended for local development work, with source in immediate subdirectories.

Features

  • native c++
  • deterministic simulation
  • reflection
  • python bindings

Getting Started

Cmake build

If nix is available, you probably prefer the nix build. Otherwise continue reading..

The cmake build has two phases, because it needs to bootstrap generated xo-cmake-config, xo-build helpers.

$ cd xo
$ PREFIX=/path/to/say/usr/local
# phase 1
$ cmake -B .build0 -S xo-cmake -DCMAKE_INSTALL_PREFIX=${PREFIX}
$ cmake --build .build0
$ cmake --install .build0
# phase 2
$ cmake -B .build -S . -DCMAKE_INSTALL_PREFIX=${PREFIX}
$ cmake --build .build
$ cmake --install .build

Nix Build

Nix build uses toplevel default.nix, along with top-level pkgs/xo-foo.nix for each subproject foo. It doesn't interact with toplevel CMakeLists.txt.

$ nix-build -A xo-userenv