aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix56
1 files changed, 56 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix
new file mode 100644
index 000000000000..c6a4fc1a068d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix
@@ -0,0 +1,56 @@
+{stdenv, fetchurl, fetchFromGitLab
+, yodl, icmake, flexcpp, bobcat
+}:
+stdenv.mkDerivation rec {
+ pname = "bisonc++";
+ version = "6.04.00";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.com";
+ owner = "fbb-git";
+ repo = "bisoncpp";
+ rev = "6.04.00";
+ sha256 = "sha256:0aa9bij4g08ilsk6cgrbgi03vyhqr9fn6j2164sjin93m63212wl";
+ };
+
+ buildInputs = [ bobcat ];
+
+ nativeBuildInputs = [ yodl icmake flexcpp ];
+
+ setSourceRoot = ''
+ sourceRoot="$(echo */bisonc++)"
+ '';
+
+ gpl = fetchurl {
+ url = "https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt";
+ sha256 = "sha256:0hq6i0dm4420825fdm0lnnppbil6z67ls67n5kgjcd912dszjxw1";
+ };
+
+ postPatch = ''
+ substituteInPlace INSTALL.im --replace /usr $out
+ patchShebangs .
+ for file in $(find documentation -type f); do
+ substituteInPlace "$file" --replace /usr/share/common-licenses/GPL ${gpl}
+ substituteInPlace "$file" --replace /usr $out
+ done
+ '';
+
+ buildPhase = ''
+ ./build program
+ ./build man
+ ./build manual
+ '';
+
+ installPhase = ''
+ ./build install x
+ '';
+
+ meta = with stdenv.lib; {
+ inherit version;
+ description = "A parser generator like bison, but it generates C++ code";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ raskin ];
+ platforms = platforms.linux;
+ homepage = "https://fbb-git.gitlab.io/bisoncpp/";
+ };
+}