blob: ca8825789931a78c815be86dc531e69ae7e12398 (
plain) (
tree)
|
|
{
description = "tree-sitter-yts";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
npmlock2nix = {
url = "github:nix-community/npmlock2nix";
flake = false;
};
crane = {
url = "github:ipetkov/crane";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
flake-utils,
npmlock2nix,
crane,
}: (flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
npmlock2nix' = pkgs.callPackage npmlock2nix {};
craneLib = crane.mkLib pkgs;
in {
build = self.packages.${system}.tree-sitter-nix;
rust-bindings = craneLib.buildPackage {
src = self;
};
# Requires xcode
node-bindings = npmlock2nix'.v2.build {
src = self;
inherit (self.devShells.${system}.default) nativeBuildInputs;
inherit (pkgs) nodejs;
buildCommands = [
"${pkgs.nodePackages.node-gyp}/bin/node-gyp configure"
"npm run build"
];
installPhase = ''
touch $out
'';
};
packages.tree-sitter-yts = (pkgs.callPackage ./grammar.nix {}) {
language = "yts";
version = "1.0";
src = self;
};
packages.default = self.packages.${system}.tree-sitter-yts;
devShells.default = pkgs.mkShell {
packages = [
pkgs.nodejs
pkgs.python3
pkgs.tree-sitter
pkgs.editorconfig-checker
pkgs.rustc
pkgs.cargo
# Formatters
pkgs.treefmt
pkgs.nixpkgs-fmt
pkgs.nodePackages.prettier
pkgs.rustfmt
pkgs.clang-tools
];
};
}));
}
|