Skip to content

Instantly share code, notes, and snippets.

@TerrorJack
Created May 24, 2023 23:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TerrorJack/92df21bf21c644772e4002c0f986570f to your computer and use it in GitHub Desktop.
Save TerrorJack/92df21bf21c644772e4002c0f986570f to your computer and use it in GitHub Desktop.
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.haskell-nix.url = "github:input-output-hk/haskell.nix";
inputs.haskell-nix.inputs.nixpkgs-unstable.follows = "nixpkgs";
outputs = { self, haskell-nix, nixpkgs, }:
haskell-nix.inputs.flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ haskell-nix.overlay ];
config = haskell-nix.config;
};
proj = pkgs.haskell-nix.cabalProject {
src = ./.;
compiler-nix-name = "ghc945";
modules = [{
ghcOptions = [ "-haddock" ];
packages.what4.components.library.preConfigure = ''
sed -i -e 's|ConcreteString "boolector"|ConcreteString "${pkgs.boolector}/bin/boolector"|' src/What4/Solver/Boolector.hs
sed -i -e 's|ConcreteString "cvc4"|ConcreteString "${pkgs.cvc4}/bin/cvc4"|' src/What4/Solver/CVC4.hs
sed -i -e 's|ConcreteString "cvc5"|ConcreteString "${pkgs.cvc5}/bin/cvc5"|' src/What4/Solver/CVC5.hs
sed -i -e 's|ConcreteString "abc"|ConcreteString "${pkgs.abc-verifier}/bin/abc"|' src/What4/Solver/ExternalABC.hs
sed -i -e 's|ConcreteString "stp"|ConcreteString "${pkgs.stp}/bin/stp"|' src/What4/Solver/STP.hs
sed -i -e 's|ConcreteString "yices"|ConcreteString "${pkgs.yices}/bin/yices"|' src/What4/Solver/Yices.hs
sed -i -e 's|ConcreteString "z3"|ConcreteString "${pkgs.z3}/bin/z3"|' src/What4/Solver/Z3.hs
'';
packages.crux-llvm.components.library.preConfigure = ''
sed -i -e 's|clangs = "clang"|clangs = "${pkgs.llvmPackages_14.clang}/bin/clang"|' src/Crux/LLVM/Compile.hs
sed -i -e 's|Crux.fileSpec "clang"|Crux.fileSpec "${pkgs.llvmPackages_14.clang}/bin/clang"|' src/Crux/LLVM/Config.hs
sed -i -e 's|Crux.fileSpec "llvm-link"|Crux.fileSpec "${pkgs.llvmPackages_14.llvm}/bin/llvm-link"|' src/Crux/LLVM/Config.hs
'';
packages.crucible-llvm.components.tests.crucible-llvm-tests.preConfigure =
''
sed -i -e 's|LLVMAssembler "llvm-as"|LLVMAssembler "${pkgs.llvmPackages_14.llvm}/bin/llvm-as"|' test/Tests.hs
sed -i -e 's|Clang "clang"|Clang "${pkgs.llvmPackages_14.clang}/bin/clang"|' test/Tests.hs
'';
}];
};
in
proj.flake');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment