2021-10-07 21:49:13 +08:00
|
|
|
{
|
|
|
|
description = "The third-generation ARTIQ compiler";
|
|
|
|
|
|
|
|
inputs.nixpkgs.url = github:NixOS/nixpkgs/master;
|
|
|
|
|
|
|
|
outputs = { self, nixpkgs }:
|
|
|
|
let
|
|
|
|
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
2021-10-08 08:18:42 +08:00
|
|
|
in rec {
|
2021-10-07 21:49:13 +08:00
|
|
|
packages.x86_64-linux = {
|
|
|
|
nac3artiq = pkgs.python3Packages.toPythonModule (
|
|
|
|
pkgs.rustPlatform.buildRustPackage {
|
|
|
|
name = "nac3artiq";
|
|
|
|
src = self;
|
|
|
|
cargoSha256 = "0cml3irmc72f42dqmka9w4l3k397b2rnns768vm132mh2zyv85lp";
|
|
|
|
nativeBuildInputs = [ pkgs.python3 pkgs.llvm_11 ];
|
|
|
|
buildInputs = [ pkgs.python3 pkgs.libffi pkgs.libxml2 pkgs.llvm_11 ];
|
|
|
|
cargoBuildFlags = [ "--package" "nac3artiq" ];
|
|
|
|
cargoTestFlags = [ "--package" "nac3core" "--package" "nac3artiq" ];
|
|
|
|
installPhase =
|
|
|
|
''
|
|
|
|
TARGET_DIR=$out/${pkgs.python3Packages.python.sitePackages}
|
|
|
|
mkdir -p $TARGET_DIR
|
|
|
|
cp target/x86_64-unknown-linux-gnu/release/libnac3artiq.so $TARGET_DIR/nac3artiq.so
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
devShell.x86_64-linux = pkgs.mkShell {
|
|
|
|
name = "nac3-dev-shell";
|
|
|
|
buildInputs = with pkgs; [
|
|
|
|
llvm_11
|
|
|
|
clang_11
|
|
|
|
lld_11
|
|
|
|
cargo
|
|
|
|
rustc
|
|
|
|
libffi
|
|
|
|
libxml2
|
|
|
|
clippy
|
|
|
|
(python3.withPackages(ps: [ ps.numpy ]))
|
|
|
|
];
|
|
|
|
};
|
2021-10-08 08:18:42 +08:00
|
|
|
|
|
|
|
hydraJobs = {
|
|
|
|
inherit (packages.x86_64-linux) nac3artiq;
|
|
|
|
};
|
2021-10-07 21:49:13 +08:00
|
|
|
};
|
|
|
|
}
|