From e3325e09260be6304d1eadb9c8def017daacb7e6 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Wed, 3 Apr 2024 12:58:01 -0400 Subject: [PATCH] xo-unit: build: + pkgs/xo-reflect.nix for nix CI --- flake.nix | 264 +------------------------------------------- pkgs/xo-reflect.nix | 37 +++++++ 2 files changed, 40 insertions(+), 261 deletions(-) create mode 100644 pkgs/xo-reflect.nix diff --git a/flake.nix b/flake.nix index ed2b35f1..a54b4e28 100644 --- a/flake.nix +++ b/flake.nix @@ -52,29 +52,10 @@ inputs.xo-indentlog-path = { type = "github"; owner = "Rconybea"; repo = "indentlog"; flake = false; }; inputs.xo-refcnt-path = { type = "github"; owner = "Rconybea"; repo = "refcnt"; flake = false; }; inputs.xo-subsys-path = { type = "github"; owner = "Rconybea"; repo = "subsys"; flake = false; }; - inputs.xo-randomgen-path = { type = "github"; owner = "Rconybea"; repo = "randomgen"; flake = false; }; - inputs.xo-ordinaltree-path = { type = "github"; owner = "Rconybea"; repo = "xo-ordinaltree"; flake = false; }; - inputs.xo-pyutil-path = { type = "github"; owner = "Rconybea"; repo = "xo-pyutil"; flake = false; }; + #inputs.xo-pyutil-path = { type = "github"; owner = "Rconybea"; repo = "xo-pyutil"; flake = false; }; inputs.xo-reflect-path = { type = "github"; owner = "Rconybea"; repo = "reflect"; flake = false; }; - inputs.xo-pyreflect-path = { type = "github"; owner = "Rconybea"; repo = "xo-pyreflect"; flake = false; }; - inputs.xo-printjson-path = { type = "github"; owner = "Rconybea"; repo = "xo-printjson"; flake = false; }; - inputs.xo-pyprintjson-path = { type = "github"; owner = "Rconybea"; repo = "xo-pyprintjson"; flake = false; }; - inputs.xo-callback-path = { type = "github"; owner = "Rconybea"; repo = "xo-callback"; flake = false; }; - inputs.xo-webutil-path = { type = "github"; owner = "Rconybea"; repo = "xo-webutil"; flake = false; }; - inputs.xo-pywebutil-path = { type = "github"; owner = "Rconybea"; repo = "xo-pywebutil"; flake = false; }; - inputs.xo-reactor-path = { type = "github"; owner = "Rconybea"; repo = "xo-reactor"; flake = false; }; - inputs.xo-pyreactor-path = { type = "github"; owner = "Rconybea"; repo = "xo-pyreactor"; flake = false; }; - inputs.xo-simulator-path = { type = "github"; owner = "Rconybea"; repo = "xo-simulator"; flake = false; }; - inputs.xo-pysimulator-path = { type = "github"; owner = "Rconybea"; repo = "xo-pysimulator"; flake = false; }; - inputs.xo-distribution-path = { type = "github"; owner = "Rconybea"; repo = "xo-distribution"; flake = false; }; - inputs.xo-pydistribution-path = { type = "github"; owner = "Rconybea"; repo = "xo-pydistribution"; flake = false; }; - inputs.xo-process-path = { type = "github"; owner = "Rconybea"; repo = "xo-process"; flake = false; }; - inputs.xo-pyprocess-path = { type = "github"; owner = "Rconybea"; repo = "xo-pyprocess"; flake = false; }; - inputs.xo-statistics-path = { type = "github"; owner = "Rconybea"; repo = "xo-statistics"; flake = false; }; - inputs.xo-kalmanfilter-path = { type = "github"; owner = "Rconybea"; repo = "xo-kalmanfilter"; flake = false; }; - inputs.xo-pykalmanfilter-path = { type = "github"; owner = "Rconybea"; repo = "xo-pykalmanfilter"; flake = false; }; - inputs.xo-websock-path = { type = "github"; owner = "Rconybea"; repo = "xo-websock"; flake = false; }; - inputs.xo-pywebsock-path = { type = "github"; owner = "Rconybea"; repo = "xo-pywebsock"; flake = false; }; + #inputs.xo-pyreflect-path = { type = "github"; owner = "Rconybea"; repo = "xo-pyreflect"; flake = false; }; + # placeholder-A outputs @@ -86,28 +67,6 @@ xo-refcnt-path, xo-subsys-path, xo-reflect-path, - xo-pyreflect-path, - xo-randomgen-path, - xo-ordinaltree-path, - xo-pyutil-path, - xo-printjson-path, - xo-pyprintjson-path, - xo-callback-path, - xo-webutil-path, - xo-pywebutil-path, - xo-reactor-path, - xo-pyreactor-path, - xo-simulator-path, - xo-pysimulator-path, - xo-distribution-path, - xo-pydistribution-path, - xo-process-path, - xo-pyprocess-path, - xo-statistics-path, - xo-kalmanfilter-path, - xo-pykalmanfilter-path, - xo-websock-path, - xo-pywebsock-path, # placeholder-B } : # out :: system -> {packages, devShells} @@ -140,29 +99,7 @@ packages.xo-indentlog = appliedOverlay.xo-indentlog; packages.xo-refcnt = appliedOverlay.xo-refcnt; packages.xo-subsys = appliedOverlay.xo-subsys; - packages.xo-randomgen = appliedOverlay.xo-randomgen; - packages.xo-ordinaltree = appliedOverlay.xo-ordinaltree; - packages.xo-pyutil = appliedOverlay.xo-pyutil; packages.xo-reflect = appliedOverlay.xo-reflect; - packages.xo-pyreflect = appliedOverlay.xo-pyreflect; - packages.xo-printjson = appliedOverlay.xo-printjson; - packages.xo-pyprintjson = appliedOverlay.xo-pyprintjson; - packages.xo-callback = appliedOverlay.xo-callback; - packages.xo-webutil = appliedOverlay.xo-webutil; - packages.xo-pywebutil = appliedOverlay.xo-pywebutil; - packages.xo-reactor = appliedOverlay.xo-reactor; - packages.xo-pyreactor = appliedOverlay.xo-pyreactor; - packages.xo-simulator = appliedOverlay.xo-simulator; - packages.xo-pysimulator = appliedOverlay.xo-pysimulator; - packages.xo-distribution = appliedOverlay.xo-distribution; - packages.xo-pydistribution = appliedOverlay.xo-pydistribution; - packages.xo-process = appliedOverlay.xo-process; - packages.xo-pyprocess = appliedOverlay.xo-pyprocess; - packages.xo-statistics = appliedOverlay.xo-statistics; - packages.xo-kalmanfilter = appliedOverlay.xo-kalmanfilter; - packages.xo-pykalmanfilter = appliedOverlay.xo-pykalmanfilter; - packages.xo-websock = appliedOverlay.xo-websock; - packages.xo-pywebsock = appliedOverlay.xo-pywebsock; # placeholder-C packages.xo-userenv = appliedOverlay.xo-userenv; @@ -218,200 +155,27 @@ xo-indentlog = xo-indentlog; }).overrideAttrs (old: { src = xo-refcnt-path; }); - xo-randomgen = - (prev.callPackage ./pkgs/xo-randomgen.nix { xo-cmake = xo-cmake; - xo-indentlog = xo-indentlog; }).overrideAttrs - (old: { src = xo-randomgen-path; }); - - xo-ordinaltree = - (prev.callPackage ./pkgs/xo-ordinaltree.nix { xo-cmake = xo-cmake; - xo-refcnt = xo-refcnt; - xo-randomgen = xo-randomgen; }).overrideAttrs - (old: { src = xo-ordinaltree-path; }); - - xo-pyutil = - (prev.callPackage ./pkgs/xo-pyutil.nix { xo-cmake = xo-cmake; - xo-refcnt = xo-refcnt; - python = python; - pybind11 = pybind11; - }).overrideAttrs - (old: { src = xo-pyutil-path; }); - xo-reflect = (prev.callPackage ./pkgs/xo-reflect.nix { xo-cmake = xo-cmake; xo-subsys = xo-subsys; xo-refcnt = xo-refcnt; }).overrideAttrs (old: { src = xo-reflect-path; }); - xo-pyreflect = - (prev.callPackage ./pkgs/xo-pyreflect.nix { xo-cmake = xo-cmake; - xo-refcnt = xo-refcnt; - xo-pyutil = xo-pyutil; - xo-reflect = xo-reflect; }).overrideAttrs - (old: { src = xo-pyreflect-path; }); - xo-unit = (prev.callPackage ./pkgs/xo-unit.nix { xo-cmake = xo-cmake; xo-reflect = xo-reflect; }).overrideAttrs (old: { src = ./.; }); - xo-printjson = - (prev.callPackage ./pkgs/xo-printjson.nix { xo-cmake = xo-cmake; - xo-reflect = xo-reflect; }).overrideAttrs - (old: { src = xo-printjson-path; }); - - xo-pyprintjson = - (prev.callPackage ./pkgs/xo-pyprintjson.nix { xo-cmake = xo-cmake; - xo-pyutil = xo-pyutil; - xo-printjson = xo-printjson; - xo-pyreflect = xo-pyreflect; }).overrideAttrs - (old: { src = xo-pyprintjson-path; }); - - xo-callback = - (prev.callPackage ./pkgs/xo-callback.nix { xo-cmake = xo-cmake; - xo-reflect = xo-reflect; }).overrideAttrs - (old: { src = xo-callback-path; }); - - xo-webutil = - (prev.callPackage ./pkgs/xo-webutil.nix { xo-cmake = xo-cmake; - xo-reflect = xo-reflect; - xo-callback = xo-callback; }).overrideAttrs - (old: { src = xo-webutil-path; }); - - xo-pywebutil = - (prev.callPackage ./pkgs/xo-pywebutil.nix { xo-cmake = xo-cmake; - xo-webutil = xo-webutil; - xo-pyutil = xo-pyutil; }).overrideAttrs - (old: { src = xo-pywebutil-path; }); - - xo-reactor = - (prev.callPackage ./pkgs/xo-reactor.nix { xo-cmake = xo-cmake; - xo-randomgen = xo-randomgen; - xo-webutil = xo-webutil; - xo-printjson = xo-printjson; - xo-ordinaltree = xo-ordinaltree; }).overrideAttrs - (old: { src = xo-reactor-path; }); - - xo-pyreactor = - (prev.callPackage ./pkgs/xo-pyreactor.nix { xo-cmake = xo-cmake; - xo-reactor = xo-reactor; - xo-pyutil = xo-pyutil; - xo-pyreflect = xo-pyreflect; - xo-pyprintjson = xo-pyprintjson; - }).overrideAttrs - (old: { src = xo-pyreactor-path; }); - - xo-simulator = - (prev.callPackage ./pkgs/xo-simulator.nix { xo-cmake = xo-cmake; - xo-reactor = xo-reactor; - }).overrideAttrs - (old: { src = xo-simulator-path; }); - - xo-pysimulator = - (prev.callPackage ./pkgs/xo-pysimulator.nix { xo-cmake = xo-cmake; - xo-simulator = xo-simulator; - xo-pyutil = xo-pyutil; - xo-pyreactor = xo-pyreactor; - }).overrideAttrs - (old: { src = xo-pysimulator-path; }); - - xo-distribution = - (prev.callPackage ./pkgs/xo-distribution.nix { xo-cmake = xo-cmake; - xo-refcnt = xo-refcnt; - }).overrideAttrs - (old: { src = xo-distribution-path; }); - - xo-pydistribution = - (prev.callPackage ./pkgs/xo-pydistribution.nix { xo-cmake = xo-cmake; - xo-distribution = xo-distribution; - xo-pyutil = xo-pyutil; - }).overrideAttrs - (old: { src = xo-pydistribution-path; }); - - xo-process = - (prev.callPackage ./pkgs/xo-process.nix { xo-cmake = xo-cmake; - xo-simulator = xo-simulator; - xo-randomgen = xo-randomgen; - }).overrideAttrs - (old: { src = xo-process-path; }); - - xo-pyprocess = - (prev.callPackage ./pkgs/xo-pyprocess.nix { xo-cmake = xo-cmake; - xo-process = xo-process; - xo-pyutil = xo-pyutil; - xo-pywebutil = xo-pywebutil; - xo-pyreactor = xo-pyreactor; - }).overrideAttrs - (old: { src = xo-pyprocess-path; }); - - xo-statistics = - (prev.callPackage ./pkgs/xo-statistics.nix { xo-cmake = xo-cmake; - #xo-reactor = xo-reactor; - }).overrideAttrs - (old: { src = xo-statistics-path; }); - - xo-kalmanfilter = - (prev.callPackage ./pkgs/xo-kalmanfilter.nix { xo-cmake = xo-cmake; - xo-statistics = xo-statistics; - xo-reactor = xo-reactor; - }).overrideAttrs - (old: { src = xo-kalmanfilter-path; }); - - - xo-pykalmanfilter = - (prev.callPackage ./pkgs/xo-pykalmanfilter.nix { xo-cmake = xo-cmake; - xo-pyutil = xo-pyutil; - xo-kalmanfilter = xo-kalmanfilter; - xo-pyreactor = xo-pyreactor; - }).overrideAttrs - (old: { src = xo-pykalmanfilter-path; }); - - xo-websock = - (prev.callPackage ./pkgs/xo-websock.nix { xo-cmake = xo-cmake; - xo-reactor = xo-reactor; - }).overrideAttrs - (old: { src = xo-websock-path; }); - - xo-pywebsock = - (prev.callPackage ./pkgs/xo-pywebsock.nix { xo-cmake = xo-cmake; - xo-websock = xo-websock; - xo-pyutil = xo-pyutil; - xo-pywebutil = xo-pywebutil; - }).overrideAttrs - (old: { src = xo-pywebsock-path; }); - # placeholder-D # user environment with all xo libraries present xo-userenv = (prev.callPackage ./pkgs/xo-userenv.nix { xo-cmake = xo-cmake; xo-indentlog = xo-indentlog; - xo-callback = xo-callback; xo-subsys = xo-subsys; xo-refcnt = xo-refcnt; - xo-randomgen = xo-randomgen; - xo-ordinaltree = xo-ordinaltree; - xo-pyutil = xo-pyutil; xo-reflect = xo-reflect; - xo-pyreflect = xo-pyreflect; xo-unit = xo-unit; - xo-printjson = xo-printjson; - xo-pyprintjson = xo-pyprintjson; - xo-webutil = xo-webutil; - xo-pywebutil = xo-pywebutil; - xo-reactor = xo-reactor; - xo-pyreactor = xo-pyreactor; - xo-simulator = xo-simulator; - xo-pysimulator = xo-pysimulator; - xo-distribution = xo-distribution; - xo-pydistribution = xo-pydistribution; - xo-process = xo-process; - xo-pyprocess = xo-pyprocess; - xo-statistics = xo-statistics; - xo-kalmanfilter = xo-kalmanfilter; - xo-pykalmanfilter = xo-pykalmanfilter; - xo-websock = xo-websock; - xo-pywebsock = xo-pywebsock; }).overrideAttrs(old: {}); @@ -426,30 +190,8 @@ xo-indentlog = xo-indentlog; xo-subsys = xo-subsys; xo-refcnt = xo-refcnt; - xo-randomgen = xo-randomgen; - xo-ordinaltree = xo-ordinaltree; - xo-pyutil = xo-pyutil; xo-reflect = xo-reflect; - xo-pyreflect = xo-pyreflect; xo-unit = xo-unit; - xo-printjson = xo-printjson; - xo-pyprintjson = xo-pyprintjson; - xo-callback = xo-callback; - xo-webutil = xo-webutil; - xo-pywebutil = xo-pywebutil; - xo-reactor = xo-reactor; - xo-pyreactor = xo-pyreactor; - xo-simulator = xo-simulator; - xo-pysimulator = xo-pysimulator; - xo-distribution = xo-distribution; - xo-pydistribution = xo-pydistribution; - xo-process = xo-process; - xo-pyprocess = xo-pyprocess; - xo-statistics = xo-statistics; - xo-kalmanfilter = xo-kalmanfilter; - xo-pykalmanfilter = xo-pykalmanfilter; - xo-websock = xo-websock; - xo-pywebsock = xo-pywebsock; # placeholder-E xo-userenv = xo-userenv; diff --git a/pkgs/xo-reflect.nix b/pkgs/xo-reflect.nix new file mode 100644 index 00000000..9f151c5f --- /dev/null +++ b/pkgs/xo-reflect.nix @@ -0,0 +1,37 @@ +{ + # nixpkgs dependencies + stdenv, cmake, catch2, # ... other deps here + + # xo dependencies + xo-cmake, xo-refcnt, xo-subsys, + + # args + + # attrset for fetching source code. + # { type, owner, repo, ref } + # + # e.g. type="github", owner="rconybea", repo="cmake-examples", ref="ex1b" + # + # see [[../flake.nix]] + # + #cmake-examples-ex1-path + + # someconfigurationoption ? false +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-reflect"; + + src = (fetchGit { + url = "https://github.com/rconybea/reflect"; + version = "1.0"; + #ref = "ex1"; + #rev = "c0472c9d7e4d2c53bfb977d3182380832fe96645"; + }); + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"]; + doCheck = true; + nativeBuildInputs = [ cmake catch2 ]; + propagatedBuildInputs = [ xo-subsys xo-refcnt ]; + })