summary refs log tree commit diff
path: root/pkgs/development/libraries/microsoft_gsl
diff options
context:
space:
mode:
authorNick Cao <nickcao@nichi.co>2021-07-18 16:24:21 +0800
committerNick Cao <nickcao@nichi.co>2021-07-18 20:10:11 +0800
commit2cceb4b94829fbec2573f3f7293066cdc7fa3dd6 (patch)
treee9f45944cbb170eb735bdf07318d798844cea877 /pkgs/development/libraries/microsoft_gsl
parent688b4cb03efd8bd6bd0796297a8738f8f91a5ff6 (diff)
downloadnixpkgs-2cceb4b94829fbec2573f3f7293066cdc7fa3dd6.tar
nixpkgs-2cceb4b94829fbec2573f3f7293066cdc7fa3dd6.tar.gz
nixpkgs-2cceb4b94829fbec2573f3f7293066cdc7fa3dd6.tar.bz2
nixpkgs-2cceb4b94829fbec2573f3f7293066cdc7fa3dd6.tar.lz
nixpkgs-2cceb4b94829fbec2573f3f7293066cdc7fa3dd6.tar.xz
nixpkgs-2cceb4b94829fbec2573f3f7293066cdc7fa3dd6.tar.zst
nixpkgs-2cceb4b94829fbec2573f3f7293066cdc7fa3dd6.zip
microsoft_gsl: 2.1.0 -> 3.1.0
Diffstat (limited to 'pkgs/development/libraries/microsoft_gsl')
-rw-r--r--pkgs/development/libraries/microsoft_gsl/default.nix48
1 files changed, 25 insertions, 23 deletions
diff --git a/pkgs/development/libraries/microsoft_gsl/default.nix b/pkgs/development/libraries/microsoft_gsl/default.nix
index 5a5257168eb..11931199999 100644
--- a/pkgs/development/libraries/microsoft_gsl/default.nix
+++ b/pkgs/development/libraries/microsoft_gsl/default.nix
@@ -1,44 +1,46 @@
-{ lib, stdenv, fetchFromGitHub, catch, cmake
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, fetchurl
+, pkg-config
 }:
 
-let
-  nativeBuild = stdenv.hostPlatform == stdenv.buildPlatform;
-in
 stdenv.mkDerivation rec {
   pname = "microsoft_gsl";
-  version = "2.1.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "Microsoft";
     repo = "GSL";
     rev = "v${version}";
-    sha256 = "09f08lxqm00152bx9yrizlgabzpzxlpbv06h00z4w78yxywgxlgx";
+    sha256 = "sha256-gIpyuNlp3mvR8r1Azs2r76ElEodykRLGAwMN4BDJez0=";
   };
 
-  # build phase just runs the unit tests, so skip it if
-  # we're doing a cross build
-  nativeBuildInputs = [ catch cmake ];
-  buildPhase = if nativeBuild then "make" else "true";
+  patches = [
+    # Search for GoogleTest via pkg-config first, ref: https://github.com/NixOS/nixpkgs/pull/130525
+    (fetchurl {
+      url = "https://github.com/microsoft/GSL/commit/f5cf01083baf7e8dc8318db3648bc6098dc32d67.patch";
+      sha256 = "sha256-uouv35crtly8kYhKyvMyZkqwTKt1jXC6dZjw4sQ6uv0=";
+    })
+  ];
 
-  # https://github.com/microsoft/GSL/issues/806
-  cmakeFlags = lib.optionals stdenv.cc.isGNU
-    [ "-DCMAKE_CXX_FLAGS=-Wno-catch-value" ];
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ gtest ];
 
-  installPhase = ''
-    mkdir -p $out/include
-    mv ../include/ $out/
-  '';
+  doCheck = true;
 
   meta = with lib; {
     description = "C++ Core Guideline support library";
     longDescription = ''
-     The Guideline Support Library (GSL) contains functions and types that are suggested for
-     use by the C++ Core Guidelines maintained by the Standard C++ Foundation.
-     This package contains Microsoft's implementation of GSL.
+      The Guideline Support Library (GSL) contains functions and types that are suggested for
+      use by the C++ Core Guidelines maintained by the Standard C++ Foundation.
+      This package contains Microsoft's implementation of GSL.
     '';
-    homepage    = "https://github.com/Microsoft/GSL";
-    license     = licenses.mit;
-    platforms   = platforms.all;
+    homepage = "https://github.com/Microsoft/GSL";
+    license = licenses.mit;
+    platforms = platforms.all;
     maintainers = with maintainers; [ thoughtpolice xwvvvvwx yuriaisaka ];
   };
 }