summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--pkgs/development/libraries/raylib/default.nix54
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 62 insertions, 0 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index c115c310a35..6c44ee95cb2 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -194,6 +194,12 @@
     githubId = 124545;
     name = "Anthony Cowley";
   };
+  adamlwgriffiths = {
+    email = "adam.lw.griffiths@gmail.com";
+    github = "adamlwgriffiths";
+    githubId = 1239156;
+    name = "Adam Griffiths";
+  };
   adamt = {
     email = "mail@adamtulinius.dk";
     github = "adamtulinius";
diff --git a/pkgs/development/libraries/raylib/default.nix b/pkgs/development/libraries/raylib/default.nix
new file mode 100644
index 00000000000..47d8fdb040b
--- /dev/null
+++ b/pkgs/development/libraries/raylib/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake,
+  mesa, libGLU, glfw,
+  libX11, libXi, libXcursor, libXrandr, libXinerama,
+  alsaSupport ? stdenv.hostPlatform.isLinux, alsaLib,
+  pulseSupport ? stdenv.hostPlatform.isLinux, libpulseaudio,
+  includeEverything ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "raylib";
+  version = "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "raysan5";
+    repo = pname;
+    rev = version;
+    sha256 = "0syvd5js1lbx3g4cddwwncqg95l6hb3fdz5nsh5pqy7fr6v84kwj";
+  };
+
+  patches = [
+    # fixes examples not compiling in 3.5.0
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/raysan5/raylib/pull/1470.patch";
+      sha256 = "1ff5l839wl8dxwrs2bwky7kqa8kk9qmsflg31sk5vbil68dzbzg0";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [
+    mesa libGLU glfw libX11 libXi libXcursor libXrandr libXinerama
+  ] ++ lib.optional alsaSupport alsaLib
+    ++ lib.optional pulseSupport libpulseaudio;
+
+  # https://github.com/raysan5/raylib/wiki/CMake-Build-Options
+  cmakeFlags = [
+    "-DUSE_EXTERNAL_GLFW=ON"
+    "-DSHARED=ON"
+    "-DBUILD_EXAMPLES=OFF"
+  ] ++ lib.optional includeEverything "-DINCLUDE_EVERYTHING=ON";
+
+  # fix libasound.so/libpulse.so not being found
+  preFixup = ''
+    ${lib.optionalString alsaSupport "patchelf --add-needed ${alsaLib}/lib/libasound.so $out/lib/libraylib.so.${version}"}
+    ${lib.optionalString pulseSupport "patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/libraylib.so.${version}"}
+  '';
+
+  meta = with lib; {
+    description = "A simple and easy-to-use library to enjoy videogames programming";
+    homepage = "http://www.raylib.com/";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ adamlwgriffiths ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3e6416b0c0a..c5823413ac6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16703,6 +16703,8 @@ in
 
   raul = callPackage ../development/libraries/audio/raul { };
 
+  raylib = callPackage ../development/libraries/raylib { };
+
   readline = readline6;
   readline6 = readline63;