diff --git a/.github/workflows/main-stock-ubuntu.yml b/.github/workflows/main-stock-ubuntu.yml index 7a92e3a9..c5543522 100644 --- a/.github/workflows/main-stock-ubuntu.yml +++ b/.github/workflows/main-stock-ubuntu.yml @@ -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: | diff --git a/CMakeLists.txt b/CMakeLists.txt index e9a849a6..773d5115 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/default.nix b/default.nix index 938e2d4a..f3d02c30 100644 --- a/default.nix +++ b/default.nix @@ -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 {}; diff --git a/pkgs/xo-pyjit.nix b/pkgs/xo-pyjit.nix new file mode 100644 index 00000000..04633742 --- /dev/null +++ b/pkgs/xo-pyjit.nix @@ -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 ]; + }) diff --git a/pkgs/xo-userenv.nix b/pkgs/xo-userenv.nix index bc3fb0fc..c7bdd032 100644 --- a/pkgs/xo-userenv.nix +++ b/pkgs/xo-userenv.nix @@ -53,7 +53,7 @@ xo-tokenizer, xo-reader, xo-jit, -# xo-pyjit + xo-pyjit # other args