lol
at 23.05-pre 45 lines 1.4 kB view raw
1{ lib, stdenv, fetchFromGitHub 2, bash-completion, perl, ncurses, zlib, sqlite, libffi 3, mcpp, cmake, bison, flex, doxygen, graphviz 4, makeWrapper 5}: 6 7 8let 9 toolsPath = lib.makeBinPath [ mcpp ]; 10in 11stdenv.mkDerivation rec { 12 pname = "souffle"; 13 version = "2.3"; 14 15 src = fetchFromGitHub { 16 owner = "souffle-lang"; 17 repo = "souffle"; 18 rev = version; 19 sha256 = "sha256-wdTBSmyA2I+gaSV577NNKA2oY2fdVTGmvV7h15NY1tU="; 20 }; 21 22 nativeBuildInputs = [ bison cmake flex mcpp doxygen graphviz makeWrapper perl ]; 23 buildInputs = [ bash-completion ncurses zlib sqlite libffi ]; 24 # these propagated inputs are needed for the compiled Souffle mode to work, 25 # since generated compiler code uses them. TODO: maybe write a g++ wrapper 26 # that adds these so we can keep the propagated inputs clean? 27 propagatedBuildInputs = [ ncurses zlib sqlite libffi ]; 28 29 cmakeFlags = [ "-DSOUFFLE_GIT=OFF" ]; 30 31 postInstall = '' 32 wrapProgram "$out/bin/souffle" --prefix PATH : "${toolsPath}" 33 ''; 34 35 outputs = [ "out" ]; 36 37 meta = with lib; { 38 broken = stdenv.isDarwin; 39 description = "A translator of declarative Datalog programs into the C++ language"; 40 homepage = "https://souffle-lang.github.io/"; 41 platforms = platforms.unix; 42 maintainers = with maintainers; [ thoughtpolice copumpkin wchresta ]; 43 license = licenses.upl; 44 }; 45}