+ xo-pyjit + ::endgroup in github workflow

This commit is contained in:
Roland Conybeare 2025-05-11 14:41:21 -05:00
commit 42ee4bbdc2
5 changed files with 54 additions and 3 deletions

View file

@ -26,12 +26,16 @@ jobs:
sudo apt update
echo "::group::cmake install"
sudo apt install -y cmake
echo "::endgroup"
echo "::group::git install"
sudo apt install -y git
echo "::endgroup"
echo "::group::pybind11-dev install"
sudo apt install -y pybind11-dev
echo "::endgroup"
echo "::group::llvm18 install"
sudo apt install -y llvm-18-dev
echo "::endgroup"
#echo "::group::clang18 install"
#sudo apt install -y clang-18
#echo "::group::lldb18 install"
@ -48,8 +52,10 @@ jobs:
echo "::group::catch2 configure"
mkdir .build
cmake -B .build -S .
echo "::endgroup"
echo "::group::catch2 install"
sudo cmake --build .build --target install
echo "::endgroup"
# this should be sufficient for find_package(Catch2) to work
@ -63,10 +69,13 @@ jobs:
mkdir -p ${PREFIX}
echo "::group::xo-cmake configure"
cmake -B .build0 -S xo-cmake -DCMAKE_INSTALL_PREFIX=${PREFIX}
echo "::endgroup"
echo "::group::xo-cmake build"
cmake --build .build0
echo "::endgroup"
echo "::group::xo-cmake install"
cmake --install .build0
echo "::endgroup"
- name: build xo subprojects
run: |
@ -74,14 +83,17 @@ jobs:
PATH=${{github.workspace}}/local/bin:${PATH}
echo "::group::xo configure"
cmake -B .build -S . -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_PREFIX_PATH=/usr/local # -DCMAKE_FIND_DEBUG_MODE=ON
echo "::endgroup"
# note: xo-foo targets exist, but don't build anything
echo "::group::xo build"
cmake --build .build #--verbose
echo "::endgroup"
echo "::group::xo install"
cmake --install .build
echo "::endgroup"
- name: print install path
run: |

View file

@ -84,7 +84,7 @@ add_subdirectory(xo-pyexpression)
add_subdirectory(xo-tokenizer)
add_subdirectory(xo-reader)
add_subdirectory(xo-jit)
#add_subdirectory(xo-pyjit)
add_subdirectory(xo-pyjit)
#add_subdirectory(xo-callback)
#add_subdirectory(xo-webutil)
#add_subdirectory(xo-pywebutil)

View file

@ -60,7 +60,7 @@ let
xo-jit = self.callPackage pkgs/xo-jit.nix { stdenv = customStdenv;
clang = llvmPackages.clang;
llvm = llvmPackages.llvm; };
# xo-pyjit = self.callPackage pkgs/xo-pyjit.nix {};
xo-pyjit = self.callPackage pkgs/xo-pyjit.nix {};
# xo-callback = self.callPackage pkgs/xo-callback.nix {};
# xo-webutil = self.callPackage pkgs/xo-webutil.nix {};
# xo-pywebutil = self.callPackage pkgs/xo-pywebutil.nix {};

39
pkgs/xo-pyjit.nix Normal file
View file

@ -0,0 +1,39 @@
{
# nixpkgs dependencies
stdenv, cmake, catch2, # ... other deps here
# xo dependencies
xo-cmake, xo-pyutil, xo-jit,
xo-pyexpression,
#xo-pyreflect,
# 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-pyjit";
version = "1.0";
src = ../xo-pyjit;
cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"];
doCheck = true;
nativeBuildInputs = [ cmake catch2 xo-cmake ];
propagatedBuildInputs = [ xo-pyutil
#xo-pyreflect
xo-pyexpression
xo-jit ];
})

View file

@ -53,7 +53,7 @@
xo-tokenizer,
xo-reader,
xo-jit,
# xo-pyjit
xo-pyjit
# other args