diff --git a/.gitignore b/.gitignore index d15e7ed..a51bcff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .direnv -node_modules -vendor +result +zomq.a +zomq.so zmq_odin diff --git a/flake.nix b/flake.nix index ef87494..78dcdcc 100644 --- a/flake.nix +++ b/flake.nix @@ -27,7 +27,45 @@ systems = [ "x86_64-linux" ]; perSystem = - { pkgs, system, inputs', ... }: { + { pkgs, system, inputs', ... }: + let + zomq = pkgs.stdenv.mkDerivation { + pname = "zomq"; + version = "0.1.0"; + src = ./.; + + nativeBuildInputs = [ pkgs.odin ]; + buildInputs = [ pkgs.zeromq ]; + + dontConfigure = true; + doCheck = true; + + buildPhase = '' + runHook preBuild + odin build . -build-mode:lib -o:speed -out:libzomq + runHook postBuild + ''; + + checkPhase = '' + runHook preCheck + odin test . -all-packages + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + install -Dm644 libzomq.a $out/lib/libzomq.a + runHook postInstall + ''; + + meta = { + description = "libzmq bindings for odin"; + platforms = [ "x86_64-linux" ]; + }; + }; + in { + packages.default = zomq; + _module.args.pkgs = import nixpkgs { inherit system; config.allowUnfree = true;