From c63c882c9544fd5aa5be27b92829852616d250ee Mon Sep 17 00:00:00 2001 From: r17x Date: Sun, 29 Dec 2024 03:40:16 +0700 Subject: [PATCH] ocamlPackages.raylib: init at 1.4.0 with ocamlPackages.patch init at 2.0.0 --- .../ocaml-modules/patch/default.nix | 37 +++++++++++++++++ .../ocaml-modules/raylib/default.nix | 40 +++++++++++++++++++ .../ocaml-modules/raylib/raygui.nix | 18 +++++++++ pkgs/top-level/ocaml-packages.nix | 6 +++ 4 files changed, 101 insertions(+) create mode 100644 pkgs/development/ocaml-modules/patch/default.nix create mode 100644 pkgs/development/ocaml-modules/raylib/default.nix create mode 100644 pkgs/development/ocaml-modules/raylib/raygui.nix diff --git a/pkgs/development/ocaml-modules/patch/default.nix b/pkgs/development/ocaml-modules/patch/default.nix new file mode 100644 index 000000000000..623a79a692ef --- /dev/null +++ b/pkgs/development/ocaml-modules/patch/default.nix @@ -0,0 +1,37 @@ +{ + lib, + fetchFromGitHub, + buildDunePackage, + gitUpdater, + alcotest, + crowbar, +}: + +buildDunePackage rec { + pname = "patch"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "hannesm"; + repo = "patch"; + tag = "v${version}"; + hash = "sha256-xqcUZaKlbyXF2//MbCom7/pGA2ej6KHYI3rizXwoqTY="; + }; + + checkInputs = [ + alcotest + crowbar + ]; + + passthru.updateScript = gitUpdater { }; + + meta = { + description = "Patch library purely in OCaml"; + longDescription = '' + This is a library which parses unified diff and git diff output, and can apply a patch in memory. + ''; + homepage = "https://github.com/hannesm/patch"; + maintainers = with lib.maintainers; [ r17x ]; + license = lib.licenses.isc; + }; +} diff --git a/pkgs/development/ocaml-modules/raylib/default.nix b/pkgs/development/ocaml-modules/raylib/default.nix new file mode 100644 index 000000000000..b733001945dc --- /dev/null +++ b/pkgs/development/ocaml-modules/raylib/default.nix @@ -0,0 +1,40 @@ +{ + lib, + fetchFromGitHub, + buildDunePackage, + dune-configurator, + ctypes, + integers, + patch, + gitUpdater, +}: + +buildDunePackage rec { + pname = "raylib"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "tjammer"; + repo = "raylib-ocaml"; + tag = version; + hash = "sha256-Fh79YnmboQF5Kn3VF//JKLaIFKl8QJWVOqRexTzxF0U="; + # enable submodules for vendored raylib sources + fetchSubmodules = true; + }; + + propagatedBuildInputs = [ + dune-configurator + ctypes + integers + patch + ]; + + passthru.updateScript = gitUpdater { }; + + meta = { + description = "OCaml bindings for Raylib (5.0.0)"; + homepage = "https://tjammer.github.io/raylib-ocaml"; + maintainers = with lib.maintainers; [ r17x ]; + license = lib.licenses.mit; + }; +} diff --git a/pkgs/development/ocaml-modules/raylib/raygui.nix b/pkgs/development/ocaml-modules/raylib/raygui.nix new file mode 100644 index 000000000000..baa2003683dd --- /dev/null +++ b/pkgs/development/ocaml-modules/raylib/raygui.nix @@ -0,0 +1,18 @@ +{ + buildDunePackage, + raylib, +}: + +buildDunePackage { + pname = "raygui"; + + inherit (raylib) src version; + + propagatedBuildInputs = [ + raylib + ]; + + meta = raylib.meta // { + description = "OCaml bindings for raygui"; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index b48159bcc67d..84d0d4032c01 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1489,6 +1489,8 @@ let parse-argv = callPackage ../development/ocaml-modules/parse-argv { }; + patch = callPackage ../development/ocaml-modules/patch { }; + path_glob = callPackage ../development/ocaml-modules/path_glob { }; pbkdf = callPackage ../development/ocaml-modules/pbkdf { }; @@ -1652,6 +1654,10 @@ let randomconv = callPackage ../development/ocaml-modules/randomconv { }; + raylib = callPackage ../development/ocaml-modules/raylib { }; + + raygui = callPackage ../development/ocaml-modules/raylib/raygui.nix { }; + rdbg = callPackage ../development/ocaml-modules/rdbg { }; re = callPackage ../development/ocaml-modules/re { };