about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/glfw
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/glfw')
-rw-r--r--nixpkgs/pkgs/development/libraries/glfw/2.x.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/glfw/3.x.nix40
2 files changed, 71 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/glfw/2.x.nix b/nixpkgs/pkgs/development/libraries/glfw/2.x.nix
new file mode 100644
index 000000000000..e749ca733daa
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/glfw/2.x.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, libGLU, libGL, libX11, libXext }:
+
+stdenv.mkDerivation rec {
+  name = "glfw-2.7.9";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/glfw/${name}.tar.bz2";
+    sha256 = "17c2msdcb7pn3p8f83805h1c216bmdqnbn9hgzr1j8wnwjcpxx6i";
+  };
+
+  buildInputs = [ libGLU libGL libX11 libXext ];
+
+  buildPhase = ''
+    make x11
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    make x11-dist-install PREFIX=$out
+    mv $out/lib/libglfw.so $out/lib/libglfw.so.2
+    ln -s libglfw.so.2 $out/lib/libglfw.so
+  ''; 
+  
+  meta = with stdenv.lib; { 
+    description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time";
+    homepage = "http://glfw.sourceforge.net/";
+    license = licenses.zlib;
+    maintainers = [ stdenv.lib.maintainers.marcweber ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/glfw/3.x.nix b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
new file mode 100644
index 000000000000..fbc1cb818ca8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchFromGitHub, cmake
+, libGL, libXrandr, libXinerama, libXcursor, libX11, libXi, libXext
+, Cocoa, Kernel, fixDarwinDylibNames
+}:
+
+stdenv.mkDerivation rec {
+  version = "3.3.2";
+  pname = "glfw";
+
+  src = fetchFromGitHub {
+    owner = "glfw";
+    repo = "GLFW";
+    rev = version;
+    sha256 = "0b5lsxz1xkzip7fvbicjkxvg5ig8gbhx1zrlhandqc0rpk56bvyw";
+  };
+
+  enableParallelBuilding = true;
+
+  propagatedBuildInputs = [ libGL ];
+
+  nativeBuildInputs = [ cmake ]
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  buildInputs = [ libX11 libXrandr libXinerama libXcursor libXi libXext ]
+    ++ lib.optionals stdenv.isDarwin [ Cocoa Kernel ];
+
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
+
+  preConfigure  = lib.optional (!stdenv.isDarwin) ''
+    substituteInPlace src/glx_context.c --replace "libGL.so.1" "${lib.getLib libGL}/lib/libGL.so.1"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time";
+    homepage = "https://www.glfw.org/";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ marcweber twey ];
+    platforms = platforms.unix;
+  };
+}