From 7e59877fe11033330501b93e9b705fd393bfcb25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Mancilla?= Date: Thu, 19 Aug 2021 19:26:40 -0400 Subject: [PATCH] glm: 0.9.8.5 -> 0.9.9.8 Bump abandoned package to close #132479. - Use fetchFromGitHub to download the archive. - No need for the updated platform.h patch. The released archive builds with default stdenv. (It may be needed again in the future?.) - Use the proper attribute to set CMake flags. - Don't build the (dummy?) libraries. They are not used anyway by any other target nor made available by the glmConfig.cmake file. - Build and run the tests now. - Don't define the GLM_COMPILER macro on Darwin. Doesn't seem necessary anymore, there are no errors without it. (And it is not even documented what was the original error that required it to be defined.) - Upstream became package-unfriendly and removed the install command, so it needs to be installed manually. - Don't set the now unsupported CMake option GLM_INSTALL_ENABLE. - Remove unwanted files from the include directory. - Fix glmConfig.cmake with the proper path to the include directory. - While on it, install a custom pkg-config file, since it is trivial. - Don't install unnecessary files as documentation. - Since I practically rewrote the entire derivation and the package is abandoned, add myself as maintainer (I guess?). --- pkgs/development/libraries/glm/default.nix | 62 ++++++++++++++-------- pkgs/development/libraries/glm/glm.pc.in | 7 +++ 2 files changed, 46 insertions(+), 23 deletions(-) create mode 100644 pkgs/development/libraries/glm/glm.pc.in diff --git a/pkgs/development/libraries/glm/default.nix b/pkgs/development/libraries/glm/default.nix index f5652a61c1de..ef8cd49ba297 100644 --- a/pkgs/development/libraries/glm/default.nix +++ b/pkgs/development/libraries/glm/default.nix @@ -1,37 +1,53 @@ -{ lib, stdenv, fetchurl, fetchzip, cmake }: +{ lib, stdenv, fetchFromGitHub, cmake }: stdenv.mkDerivation rec { - version = "0.9.8.5"; + version = "0.9.9.8"; pname = "glm"; - src = fetchzip { - url = "https://github.com/g-truc/glm/releases/download/${version}/${pname}-${version}.zip"; - sha256 = "0dkfj4hin3am9fxgcvwr5gj0h9y52x7wa03lfwb3q0bvaj1rsly2"; + src = fetchFromGitHub { + owner = "g-truc"; + repo = pname; + rev = version; + sha256 = "sha256-F//+3L5Ozrw6s7t4LrcUmO7sN30ZSESdrPAYX57zgr8="; }; - nativeBuildInputs = [ cmake ]; - outputs = [ "out" "doc" ]; - cmakeConfigureFlags = [ "-DGLM_INSTALL_ENABLE=off" ]; + nativeBuildInputs = [ cmake ]; - # fetch newer version of platform.h which correctly supports gcc 7.3 - gcc7PlatformPatch = fetchurl { - url = "https://raw.githubusercontent.com/g-truc/glm/384dab02e45a8ad3c1a3fa0906e0d5682c5b27b9/glm/simd/platform.h"; - sha256 = "0ym0sgwznxhfyi014xs55x3ql7r65fjs34sqb5jiaffkdhkqgzia"; - }; + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=OFF" + "-DBUILD_STATIC_LIBS=OFF" + "-DGLM_TEST_ENABLE=${if doCheck then "ON" else "OFF"}" + ]; - postPatch = '' - substituteInPlace CMakeLists.txt \ - --replace '"''${CMAKE_CURRENT_BINARY_DIR}/''${GLM_INSTALL_CONFIGDIR}' '"''${GLM_INSTALL_CONFIGDIR}' - cp ${gcc7PlatformPatch} glm/simd/platform.h - ''; + doCheck = true; - NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-DGLM_COMPILER=0"; + installPhase = '' + runHook preInstall - postInstall = '' + # Install header-only library + mkdir -p $out/include + cp -rv ../glm $out/include + rm $out/include/glm/CMakeLists.txt + rm $out/include/glm/detail/*.cpp + + # Install CMake files + mkdir -p $out/lib + cp -rv ../cmake $out/lib + substituteInPlace $out/lib/cmake/glm/glmConfig.cmake \ + --replace 'GLM_INCLUDE_DIRS ''${_IMPORT_PREFIX}' "GLM_INCLUDE_DIRS $out/include" + + # Install pkg-config file + mkdir -p $out/lib/pkgconfig + substituteAll ${./glm.pc.in} $out/lib/pkgconfig/glm.pc + + # Install docs mkdir -p $doc/share/doc/glm - cp -rv $NIX_BUILD_TOP/$sourceRoot/doc/* $doc/share/doc/glm + cp -rv ../doc/api $doc/share/doc/glm/html + cp -v ../doc/manual.pdf $doc/share/doc/glm + + runHook postInstall ''; meta = with lib; { @@ -41,10 +57,10 @@ stdenv.mkDerivation rec { graphics software based on the OpenGL Shading Language (GLSL) specification and released under the MIT license. ''; - homepage = "http://glm.g-truc.net/"; + homepage = "https://github.com/g-truc/glm"; license = licenses.mit; platforms = platforms.unix; - maintainers = with lib.maintainers; [ ]; + maintainers = with maintainers; [ smancill ]; }; } diff --git a/pkgs/development/libraries/glm/glm.pc.in b/pkgs/development/libraries/glm/glm.pc.in new file mode 100644 index 000000000000..e196c793d1d5 --- /dev/null +++ b/pkgs/development/libraries/glm/glm.pc.in @@ -0,0 +1,7 @@ +prefix=@out@ +includedir=@out@/include + +Name: GLM +Description: OpenGL Mathematics +Version: @version@ +Cflags: -I${includedir}