Compare commits
19 Commits
3235165797
...
4a8a3750fe
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4a8a3750fe | ||
|
|
7853204758 | ||
|
|
a9c69c4927 | ||
|
|
14e0e85823 | ||
|
|
ca99358747 | ||
|
|
81793d5171 | ||
|
|
ea096b6945 | ||
|
|
356385cbd2 | ||
|
|
e2854bd486 | ||
|
|
57518cc3dc | ||
|
|
b2eaaf6b88 | ||
|
|
351640dc7a | ||
|
|
987fc65a34 | ||
|
|
705d604fdb | ||
|
|
6f58488033 | ||
|
|
00ffcc3df9 | ||
|
|
963b90f627 | ||
|
|
322ad4ee73 | ||
|
|
958332857d |
2
build
2
build
@ -1,8 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# generate this file from Nix config for now to avoid duplication?
|
|
||||||
|
|
||||||
cargo build --manifest-path ./rust/Cargo.toml
|
cargo build --manifest-path ./rust/Cargo.toml
|
||||||
|
|
||||||
BUNDLED_LIB_DIR=$(cabal list-bin . | sed -e 's=x/garnet/build/garnet/garnet=build=g')
|
BUNDLED_LIB_DIR=$(cabal list-bin . | sed -e 's=x/garnet/build/garnet/garnet=build=g')
|
||||||
|
|||||||
13
flake.lock
generated
13
flake.lock
generated
@ -527,15 +527,16 @@
|
|||||||
"hs-bindgen-src": {
|
"hs-bindgen-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776078838,
|
"lastModified": 1774599157,
|
||||||
"narHash": "sha256-f8SE6IuACy8bzIX+EOYTpekaAI/TOQ3zTwJKJmHl3LY=",
|
"narHash": "sha256-jgV67xhWzxMwyiyy5RPtu+VQvGTt+FoMXCWJcZ7lczY=",
|
||||||
"owner": "well-typed",
|
"owner": "well-typed",
|
||||||
"repo": "hs-bindgen",
|
"repo": "hs-bindgen",
|
||||||
"rev": "ca714aca1ed941271ac248488c9a469554c5b470",
|
"rev": "3c4af10590d0d09e825a9735e9a03d7f60914e21",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "well-typed",
|
"owner": "well-typed",
|
||||||
|
"ref": "release-0.1-alpha2",
|
||||||
"repo": "hs-bindgen",
|
"repo": "hs-bindgen",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@ -560,11 +561,11 @@
|
|||||||
"libclang-src": {
|
"libclang-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775645278,
|
"lastModified": 1774600891,
|
||||||
"narHash": "sha256-JWARcbqH432vWcCvQ2bagTXBka8sCRNAnK1qOmnLWKw=",
|
"narHash": "sha256-LTAyNMY4Vu0vPeEq2wXB0KWY4kGtqtHTRmADjLdkv78=",
|
||||||
"owner": "well-typed",
|
"owner": "well-typed",
|
||||||
"repo": "libclang",
|
"repo": "libclang",
|
||||||
"rev": "bf574efcb492d2738d8a82b6ce556f840ff92778",
|
"rev": "1054474fae403bfb52c7919680cac03d3d3d4237",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
13
flake.nix
13
flake.nix
@ -3,7 +3,7 @@
|
|||||||
nix-haskell.url = "github:reflex-frp/nix-haskell";
|
nix-haskell.url = "github:reflex-frp/nix-haskell";
|
||||||
nixpkgs.follows = "nix-haskell/nixpkgs";
|
nixpkgs.follows = "nix-haskell/nixpkgs";
|
||||||
hls-src = { url = "github:haskell/haskell-language-server/2.13.0.0"; flake = false; };
|
hls-src = { url = "github:haskell/haskell-language-server/2.13.0.0"; flake = false; };
|
||||||
hs-bindgen-src = { url = "github:well-typed/hs-bindgen"; flake = false; };
|
hs-bindgen-src = { url = "github:well-typed/hs-bindgen/release-0.1-alpha2"; flake = false; };
|
||||||
libclang-src = { url = "github:well-typed/libclang"; flake = false; };
|
libclang-src = { url = "github:well-typed/libclang"; flake = false; };
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
crane.url = "github:ipetkov/crane";
|
crane.url = "github:ipetkov/crane";
|
||||||
@ -16,7 +16,7 @@
|
|||||||
inputs:
|
inputs:
|
||||||
inputs.flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
|
inputs.flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
|
||||||
let
|
let
|
||||||
pkgs = haskell.nixpkgs.extend (import inputs.rust-overlay);
|
pkgs = (import inputs.nixpkgs { inherit system; }).extend (import inputs.rust-overlay);
|
||||||
crane = (inputs.crane.mkLib pkgs).overrideToolchain (p: p.rust-bin.selectLatestNightlyWith (
|
crane = (inputs.crane.mkLib pkgs).overrideToolchain (p: p.rust-bin.selectLatestNightlyWith (
|
||||||
toolchain: toolchain.default.override {
|
toolchain: toolchain.default.override {
|
||||||
extensions = [ "rust-src" "rust-analyzer" ];
|
extensions = [ "rust-src" "rust-analyzer" ];
|
||||||
@ -27,7 +27,7 @@
|
|||||||
''
|
''
|
||||||
export C_INCLUDE_PATH="${pkgs.stdenv.cc.libc.dev}/include''${C_INCLUDE_PATH:+:$C_INCLUDE_PATH}"
|
export C_INCLUDE_PATH="${pkgs.stdenv.cc.libc.dev}/include''${C_INCLUDE_PATH:+:$C_INCLUDE_PATH}"
|
||||||
'';
|
'';
|
||||||
haskell = (import inputs.nix-haskell { inherit system inputs; } {
|
project = (import inputs.nix-haskell { inherit system inputs; } {
|
||||||
name = "garnet";
|
name = "garnet";
|
||||||
src = ./.;
|
src = ./.;
|
||||||
compiler-nix-name = "ghc914";
|
compiler-nix-name = "ghc914";
|
||||||
@ -49,7 +49,6 @@
|
|||||||
};
|
};
|
||||||
packages.garnet.components.library = {
|
packages.garnet.components.library = {
|
||||||
preBuild = addLibcIncludeDir;
|
preBuild = addLibcIncludeDir;
|
||||||
# try removing?
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
mkdir -p rust/target/debug
|
mkdir -p rust/target/debug
|
||||||
ln -s ${garnet-rs}/include/garnet_rs.h rust/target/debug/garnet_rs.h
|
ln -s ${garnet-rs}/include/garnet_rs.h rust/target/debug/garnet_rs.h
|
||||||
@ -77,7 +76,7 @@
|
|||||||
withHaddock = true;
|
withHaddock = true;
|
||||||
shellHook = addLibcIncludeDir;
|
shellHook = addLibcIncludeDir;
|
||||||
};
|
};
|
||||||
});
|
}).project.haskell-nix;
|
||||||
garnet-rs = crane.buildPackage {
|
garnet-rs = crane.buildPackage {
|
||||||
src = crane.cleanCargoSource ./rust;
|
src = crane.cleanCargoSource ./rust;
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
@ -90,14 +89,14 @@
|
|||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
defaultPackage = packages.garnet-exe;
|
defaultPackage = packages.garnet-exe;
|
||||||
packages = let garnet = haskell.project.haskell-nix.hsPkgs.garnet; in {
|
packages = let garnet = project.hsPkgs.garnet; in {
|
||||||
inherit garnet-rs;
|
inherit garnet-rs;
|
||||||
garnet-exe = garnet.components.exes.garnet;
|
garnet-exe = garnet.components.exes.garnet;
|
||||||
garnet-lib = garnet.components.library;
|
garnet-lib = garnet.components.library;
|
||||||
};
|
};
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
inputsFrom = [
|
inputsFrom = [
|
||||||
haskell.project.haskell-nix.shell
|
project.shell
|
||||||
(crane.devShell { })
|
(crane.devShell { })
|
||||||
];
|
];
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
|
|||||||
10
garnet.cabal
10
garnet.cabal
@ -14,14 +14,6 @@ extra-source-files:
|
|||||||
-- extra-tmp-files:
|
-- extra-tmp-files:
|
||||||
-- rust/target/debug/garnet_rs.h
|
-- rust/target/debug/garnet_rs.h
|
||||||
|
|
||||||
-- actually maybe this is pointless given we always need debug path anyway in `extra-source-files`
|
|
||||||
-- plus we have it in `Raw.hs`
|
|
||||||
flag dev
|
|
||||||
default:
|
|
||||||
False
|
|
||||||
manual:
|
|
||||||
True
|
|
||||||
|
|
||||||
common common
|
common common
|
||||||
default-language: GHC2024
|
default-language: GHC2024
|
||||||
default-extensions:
|
default-extensions:
|
||||||
@ -58,8 +50,6 @@ library
|
|||||||
GarnetRs.Raw
|
GarnetRs.Raw
|
||||||
GarnetRs.Wrapped
|
GarnetRs.Wrapped
|
||||||
hs-source-dirs: lib
|
hs-source-dirs: lib
|
||||||
-- if flag (dev)
|
|
||||||
-- include-dirs: rust/target/debug
|
|
||||||
include-dirs: rust/target/debug
|
include-dirs: rust/target/debug
|
||||||
-- HLS gives up entirely when the header is malformed if we do this
|
-- HLS gives up entirely when the header is malformed if we do this
|
||||||
-- and anyway, I don't think it gives us dependency tracking like `extra-source-files` does
|
-- and anyway, I don't think it gives us dependency tracking like `extra-source-files` does
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user