nix build: + xo-expression2
Some checks failed
CI / smoke-test (push) Has been cancelled

This commit is contained in:
Roland Conybeare 2026-05-30 14:04:51 -04:00
commit 2dee3f5f68
6 changed files with 54 additions and 2 deletions

View file

@ -100,7 +100,8 @@ add_subdirectory(xo-type) # experiment w/ facet object model
add_subdirectory(xo-procedure2) # schematika procedure abstraction + runtime context (fomo)
add_subdirectory(xo-numeric) # schematika poly arithmetic w/ facet object model
add_subdirectory(xo-tokenizer2) # schematika tokenizer (w/ fomo)
add_subdirectory(xo-expression2) # schematika expressions (fomo)
#
add_subdirectory(xo-allocutil) # xo-alloc api
add_subdirectory(xo-alloc) # arena allocator + incremental gc
add_subdirectory(xo-ratio)
@ -111,7 +112,6 @@ add_subdirectory(xo-callback)
add_subdirectory(xo-object)
add_subdirectory(xo-ordinaltree)
#
add_subdirectory(xo-expression2) # schematika expressions (fomo)
add_subdirectory(xo-reader2) # schematika expression parser (fomo)
add_subdirectory(xo-interpreter2) # schematika interpreter (fomo)
#

1
ci.nix
View file

@ -34,6 +34,7 @@ in
xo-procedure2
xo-numeric
xo-tokenizer2
xo-expression2
xo-allocutil
xo-alloc
xo-ratio

45
pkgs/xo-expression2.nix Normal file
View file

@ -0,0 +1,45 @@
{
# nixpkgs dependencies
lib, stdenv, cmake, catch2,
# xo dependencies
xo-gc,
xo-type,
xo-reflect,
xo-procedure2,
xo-printable2,
xo-flatstring,
xo-subsys,
xo-indentlog,
xo-cmake,
# config arguments
doCheck ? true
} :
stdenv.mmkDerivation (finalattrs :
{
name = "xo-expression2";
src = ../xo-expression2;
cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"]
++ lib.optionals doCheck ["-DENABLE_TESTING=1"];
inherit doCheck;
nativeBuildInputs = [
cmake catch2
xo-cmake
];
propagatedBuildInputs = [
xo-gc
xo-type
xo-reflect
xo-procedure2
xo-printable2
xo-flatstring
xo-subsys
xo-indentlog
];
})

View file

@ -314,6 +314,9 @@ in
{
inherit pkgs;
# load-bearing for
# $ nix-build -A xo.foo
#
xo = {
cmake = pkgs.xo-cmake;
subsys = pkgs.xo-subsys;
@ -337,6 +340,7 @@ in
procedure2 = pkgs.xo-procedure2;
numeric = pkgs.xo-numeric;
tokenizer2 = pkgs.xo-tokenizer2;
expression2 = pkgs.xo-expression2;
allocutil = pkgs.xo-allocutil;
alloc = pkgs.xo-alloc;

View file

@ -20,6 +20,7 @@ xo-type
xo-procedure2
xo-numeric
xo-tokenizer2
xo-expression2
xo-allocutil
xo-alloc
xo-object

1
xo.nix
View file

@ -47,6 +47,7 @@ let
xo-procedure2 = callPackage pkgs/xo-procedure2.nix { stdenv = jitStdenv; };
xo-numeric = callPackage pkgs/xo-numeric.nix { stdenv = jitStdenv; };
xo-tokenizer2 = callPackage pkgs/xo-tokenizer2.nix { stdenv = jitStdenv; buildExamples = true; };
xo-expression2 = callPackage pkgs/xo-expression2.nix { stdenv = jitStdenv; };
xo-allocutil = callPackage pkgs/xo-allocutil.nix { stdenv = jitStdenv; };
xo-alloc = callPackage pkgs/xo-alloc.nix { stdenv = jitStdenv; buildDocs = true; };
xo-ratio = callPackage pkgs/xo-ratio.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; };