aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorSinan Mohd <sinan@sinanmohd.com>2024-06-26 11:29:28 +0530
committerGitHub <noreply@github.com>2024-06-26 11:29:28 +0530
commit8348bde98acac3328fee84d21f8e5ebb51692afa (patch)
tree16830bb2d6f8774a99864c52be47ee9abe13bed8 /flake.nix
parentcc02eba1d357dde0132593649c67a194750fe37d (diff)
parente575e08cacd3461feae843d368fa205c85304b2c (diff)
Merge pull request #1 from SomeoneSerge/feat/python
evanix-py: init
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix140
1 files changed, 82 insertions, 58 deletions
diff --git a/flake.nix b/flake.nix
index 90992f3..ad6638d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,75 +3,99 @@
inputs.nixpkgs.url = "github:NixOs/nixpkgs/nixos-unstable";
- outputs = { self, nixpkgs }: let
- lib = nixpkgs.lib;
+ outputs =
+ { self, nixpkgs }:
+ let
+ lib = nixpkgs.lib;
- forSystem = f: system: f {
- inherit system;
- pkgs = import nixpkgs { inherit system; };
- };
+ forSystem =
+ f: system:
+ f {
+ inherit system;
+ pkgs = import nixpkgs { inherit system; };
+ };
- supportedSystems = lib.platforms.unix;
- forAllSystems = f: lib.genAttrs supportedSystems (forSystem f);
- in {
- devShells = forAllSystems ({ system, pkgs }: {
- default = pkgs.mkShell {
- name = "dev";
+ supportedSystems = lib.platforms.unix;
+ forAllSystems = f: lib.genAttrs supportedSystems (forSystem f);
+ in
+ {
+ devShells = forAllSystems (
+ { system, pkgs }:
+ {
+ default = pkgs.mkShell {
+ name = "dev";
- buildInputs = with pkgs; [
- jq
- cjson
- nix-eval-jobs
+ buildInputs = with pkgs; [
+ jq
+ cjson
+ nix-eval-jobs
- pkg-config
- meson
- ninja
+ pkg-config
+ meson
+ ninja
- gdb
- ccls
- valgrind
- clang-tools # clang-format
- ];
+ gdb
+ ccls
+ valgrind
+ clang-tools # clang-format
+ ];
- shellHook = ''
- export PS1="\033[0;34m[󱄅 ]\033[0m $PS1"
- '';
- };
- });
+ shellHook = ''
+ export PS1="\033[0;34m[󱄅 ]\033[0m $PS1"
+ '';
+ };
+ }
+ );
- packages = forAllSystems ({ system, pkgs }: {
- evanix = pkgs.stdenv.mkDerivation (finalAttrs: {
- name = "evanix";
+ packages = forAllSystems (
+ { system, pkgs }:
+ {
+ default = self.packages.${system}.evanix;
+ evanix = pkgs.stdenv.mkDerivation (finalAttrs: {
+ name = "evanix";
- src = ./.;
- nativeBuildInputs = with pkgs; [
- meson
- ninja
- pkg-config
- makeWrapper
- ];
- buildInputs = with pkgs; [
- cjson
- nix-eval-jobs
- ];
+ src = ./.;
+ nativeBuildInputs = with pkgs; [
+ meson
+ ninja
+ pkg-config
+ makeWrapper
+ ];
+ buildInputs = with pkgs; [
+ cjson
+ nix-eval-jobs
+ ];
- postInstall = ''
- wrapProgram $out/bin/evanix \
- --prefix PATH : ${lib.makeBinPath [ pkgs.nix-eval-jobs ]}
- '';
+ postInstall = ''
+ wrapProgram $out/bin/evanix \
+ --prefix PATH : ${lib.makeBinPath [ pkgs.nix-eval-jobs ]}
+ '';
- meta = {
- homepage = "https://git.sinanmohd.com/evanix";
+ meta = {
+ homepage = "https://git.sinanmohd.com/evanix";
- license = lib.licenses.gpl3;
- platforms = supportedSystems;
- mainProgram = "evanix";
+ license = lib.licenses.gpl3;
+ platforms = supportedSystems;
+ mainProgram = "evanix";
- maintainers = with lib.maintainers; [ sinanmohd ];
- };
- });
+ maintainers = with lib.maintainers; [ sinanmohd ];
+ };
+ });
- default = self.packages.${system}.evanix;
- });
- };
+ evanix-py = pkgs.python3Packages.callPackage ./python-package.nix { };
+ pythonWithEvanix =
+ let
+ wrapper = pkgs.python3.withPackages (ps: [ (ps.callPackage ./python-package.nix { }) ]);
+ in
+ wrapper.overrideAttrs (oldAttrs: {
+ makeWrapperArgs = oldAttrs.makeWrapperArgs or [ ] ++ [
+ "--prefix"
+ "PATH"
+ ":"
+ "${lib.makeBinPath [ pkgs.nix-eval-jobs ]}"
+ ];
+ });
+ }
+ );
+ };
}