1{
2 lib,
3 stdenv,
4 fetchurl,
5 libGLU,
6 libXmu,
7 libXi,
8 libXext,
9 testers,
10 mesa,
11}:
12
13stdenv.mkDerivation (finalAttrs: {
14 pname = "glew";
15 version = "1.10.0";
16
17 src = fetchurl {
18 url = "mirror://sourceforge/glew/glew-${finalAttrs.version}.tgz";
19 sha256 = "01zki46dr5khzlyywr3cg615bcal32dazfazkf360s1znqh17i4r";
20 };
21
22 buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [
23 libXmu
24 libXi
25 libXext
26 ];
27 propagatedBuildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [ libGLU ]; # GL/glew.h includes GL/glu.h
28
29 outputs = [
30 "out"
31 "dev"
32 ];
33
34 patchPhase = ''
35 sed -i 's|lib64|lib|' config/Makefile.linux
36 ${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
37 sed -i -e 's/\(INSTALL.*\)-s/\1/' Makefile
38 ''}
39 '';
40
41 buildFlags = [ "all" ];
42 installFlags = [ "install.all" ];
43
44 preInstall = ''
45 export GLEW_DEST="$out"
46 '';
47
48 postInstall = ''
49 mkdir -pv $out/share/doc/glew
50 mkdir -p $dev/lib/pkgconfig
51 cp glew*.pc $dev/lib/pkgconfig
52 cp -r README.txt LICENSE.txt doc $out/share/doc/glew
53 '';
54
55 makeFlags = [
56 "SYSTEM=${if stdenv.hostPlatform.isMinGW then "mingw" else stdenv.hostPlatform.parsed.kernel.name}"
57 "CC:=$(CC)"
58 "LD:=$(CC)"
59 ];
60
61 passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
62
63 meta = with lib; {
64 description = "OpenGL extension loading library for C(++)";
65 homepage = "https://glew.sourceforge.net/";
66 license = licenses.free; # different files under different licenses
67 #["BSD" "GLX" "SGI-B" "GPL2"]
68 pkgConfigModules = [ "glew" ];
69 inherit (mesa.meta) platforms;
70 };
71})