summary refs log blame commit diff
path: root/pkgs/development/libraries/re2/default.nix
blob: 2cdad981fbd971df9c99ac1b2e119e0566b6abbc (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                    
 
                         
                
                         
 


                         
                  
                                                                   



                                                            

                                                                                       

     

                                                                       
                                




                                                                       
 



                                      

                                                                                   


                                     





                                      
          
                                               
                                                                        

                                        

    
{ lib, stdenv, fetchFromGitHub, nix-update-script }:

stdenv.mkDerivation rec {
  pname = "re2";
  version = "2022-02-01";

  src = fetchFromGitHub {
    owner = "google";
    repo = "re2";
    rev = version;
    sha256 = "sha256-3RspCfJD2jV7GYuzeBUcxkZsdHyL14kaz8lSoIrH7b8=";
  };

  preConfigure = ''
    substituteInPlace Makefile --replace "/usr/local" "$out"
    # we're using gnu sed, even on darwin
    substituteInPlace Makefile  --replace "SED_INPLACE=sed -i '''" "SED_INPLACE=sed -i"
  '';

  buildFlags = lib.optionals stdenv.hostPlatform.isStatic [ "static" ];

  enableParallelBuilding = true;
  # Broken when shared/static are tested in parallel:
  #   cp: cannot create regular file 'obj/testinstall.cc': File exists
  #   make: *** [Makefile:334: static-testinstall] Error 1
  # Will be fixed by https://code-review.googlesource.com/c/re2/+/59830
  enableParallelChecking = false;

  preCheck = "patchShebangs runtests";
  doCheck = true;
  checkTarget = "test";

  installTargets = lib.optionals stdenv.hostPlatform.isStatic [ "static-install" ];

  doInstallCheck = true;
  installCheckTarget = "testinstall";

  passthru = {
    updateScript = nix-update-script {
      attrPath = pname;
    };
  };

  meta = {
    homepage = "https://github.com/google/re2";
    description = "An efficient, principled regular expression library";
    license = lib.licenses.bsd3;
    platforms = with lib.platforms; all;
  };
}