From 42368a62af0669403333b212b2f87853da827226 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Tue, 4 Jan 2022 23:25:03 -0500 Subject: [PATCH] glew: switch to use cmake --- pkgs/development/libraries/glew/default.nix | 77 ++++++++++----------- pkgs/top-level/all-packages.nix | 8 +-- 2 files changed, 41 insertions(+), 44 deletions(-) diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix index ae32bbe9522..7e281892a1f 100644 --- a/pkgs/development/libraries/glew/default.nix +++ b/pkgs/development/libraries/glew/default.nix @@ -1,9 +1,8 @@ -{ lib, stdenv, fetchurl, libGLU, xlibsWrapper, libXmu, libXi +{ lib, stdenv, fetchurl, fetchpatch, cmake, libGLU, xlibsWrapper, libXmu, libXi , OpenGL +, enableEGL ? false }: -with lib; - stdenv.mkDerivation rec { pname = "glew"; version = "2.2.0"; @@ -13,48 +12,46 @@ stdenv.mkDerivation rec { sha256 = "1qak8f7g1iswgswrgkzc7idk7jmqgwrs58fhg2ai007v7j4q5z6l"; }; - outputs = [ "bin" "out" "dev" "doc" ]; + outputs = [ "bin" "out" "dev" ]; - buildInputs = optionals (!stdenv.isDarwin) [ xlibsWrapper libXmu libXi ]; - propagatedBuildInputs = if stdenv.isDarwin then [ OpenGL ] else [ libGLU ]; # GL/glew.h includes GL/glu.h - - patchPhase = '' - sed -i 's|lib64|lib|' config/Makefile.linux - substituteInPlace config/Makefile.darwin --replace /usr/local "$out" - ${optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - sed -i -e 's/\(INSTALL.*\)-s/\1/' Makefile - ''} - ''; - - buildFlags = [ "all" ]; - installFlags = [ "install.all" ]; - - preInstall = '' - makeFlagsArray+=(GLEW_DEST=$out BINDIR=$bin/bin INCDIR=$dev/include/GL) - ''; - - postInstall = '' - mkdir -pv $out/share/doc/glew - mkdir -p $out/lib/pkgconfig - cp glew*.pc $out/lib/pkgconfig - cp -r README.md LICENSE.txt doc $out/share/doc/glew - rm $out/lib/*.a - ''; - - makeFlags = [ - "SYSTEM=${if stdenv.hostPlatform.isMinGW then "mingw" else stdenv.hostPlatform.parsed.kernel.name}" - "CC=${stdenv.cc.targetPrefix}cc" - "LD=${stdenv.cc.targetPrefix}cc" - "AR=${stdenv.cc.targetPrefix}ar" + patches = [ + # https://github.com/nigels-com/glew/pull/342 + (fetchpatch { + url = "https://github.com/nigels-com/glew/commit/966e53fa153175864e151ec8a8e11f688c3e752d.diff"; + sha256 = "sha256-xsSwdAbdWZA4KVoQhaLlkYvO711i3QlHGtv6v1Omkhw="; + }) ]; - enableParallelBuilding = true; + nativeBuildInputs = [ cmake ]; + buildInputs = lib.optionals (!stdenv.isDarwin) [ xlibsWrapper libXmu libXi ]; + propagatedBuildInputs = if stdenv.isDarwin then [ OpenGL ] else [ libGLU ]; # GL/glew.h includes GL/glu.h + + cmakeDir = "cmake"; + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=ON" + ] ++ lib.optional enableEGL "-DGLEW_EGL=ON"; + + postInstall = '' + moveToOutput lib/cmake "''${!outputDev}" + moveToOutput lib/pkgconfig "''${!outputDev}" + + cat >> "''${!outputDev}"/lib/cmake/glew/glew-config.cmake <