Skip to content

Commit a416d26

Browse files
authored
Merge pull request #780 from itepastra/add-flake
add nix flake
2 parents 152445c + a5f0e1f commit a416d26

File tree

3 files changed

+179
-0
lines changed

3 files changed

+179
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,4 @@ tests/breakid*
4141
web
4242
src/predict
4343
scripts/linpb*
44+
/result

flake.lock

+94
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
{
2+
description = "an advanced incremental SAT solver";
3+
inputs = {
4+
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
5+
cadical = {
6+
url = "github:itepastra/cadical/add-flake";
7+
inputs.nixpkgs.follows = "nixpkgs";
8+
};
9+
cadiback = {
10+
url = "github:itepastra/cadiback/add-flake";
11+
inputs.nixpkgs.follows = "nixpkgs";
12+
};
13+
};
14+
outputs =
15+
{
16+
self,
17+
nixpkgs,
18+
cadical,
19+
cadiback,
20+
}:
21+
let
22+
inherit (nixpkgs) lib;
23+
systems = lib.intersectLists lib.systems.flakeExposed lib.platforms.linux;
24+
forAllSystems = lib.genAttrs systems;
25+
nixpkgsFor = forAllSystems (system: nixpkgs.legacyPackages.${system});
26+
fs = lib.fileset;
27+
28+
cryptominisat-package =
29+
{
30+
stdenv,
31+
fetchFromGitHub,
32+
cmake,
33+
cadiback,
34+
cadical,
35+
pkg-config,
36+
gmp,
37+
zlib,
38+
}:
39+
stdenv.mkDerivation {
40+
name = "cryptominisat";
41+
src = fs.toSource {
42+
root = ./.;
43+
fileset = fs.unions [
44+
./src
45+
./CMakeLists.txt
46+
./cmake
47+
./scripts
48+
./cryptominisat5Config.cmake.in
49+
];
50+
};
51+
patchPhase = ''
52+
substituteInPlace src/backbone.cpp \
53+
--replace-fail "../cadiback/cadiback.h" "${cadiback}/include/cadiback.h"
54+
'';
55+
56+
nativeBuildInputs = [
57+
cmake
58+
pkg-config
59+
];
60+
buildInputs = [
61+
cadiback
62+
cadical
63+
gmp
64+
zlib
65+
];
66+
};
67+
in
68+
{
69+
packages = forAllSystems (
70+
system:
71+
let
72+
cryptominisat = nixpkgsFor.${system}.callPackage cryptominisat-package {
73+
cadical = cadical.packages.${system}.cadical;
74+
cadiback = cadiback.packages.${system}.cadiback;
75+
};
76+
in
77+
{
78+
inherit cryptominisat;
79+
cryptominisat5 = cryptominisat;
80+
default = cryptominisat;
81+
}
82+
);
83+
};
84+
}

0 commit comments

Comments
 (0)