depot/third_party/nixpkgs/pkgs/development/libraries/vectorscan/default.nix
Default email 5e7c2d6cef Project import generated by Copybara.
GitOrigin-RevId: f99e5f03cc0aa231ab5950a15ed02afec45ed51a
2023-10-09 21:29:22 +02:00

59 lines
1.9 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, cmake
, ragel
, util-linux
, python3
, boost
, enableShared ? !stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "vectorscan";
version = "5.4.10.1";
src = fetchFromGitHub {
owner = "VectorCamp";
repo = "vectorscan";
rev = "vectorscan/${version}";
hash = "sha256-x6FefOrUvpN/A4GXTd+3SGZEAQL6pXt83ufxRIY3Q9k=";
};
nativeBuildInputs = [
cmake
ragel
python3
] ++ lib.optional stdenv.isLinux util-linux;
buildInputs = [
boost
];
cmakeFlags = lib.optional enableShared "-DBUILD_STATIC_AND_SHARED=ON"
++ [ "-DFAT_RUNTIME=${if stdenv.hostPlatform.isLinux then "ON" else "OFF"}" ]
++ lib.optional stdenv.hostPlatform.avx2Support "-DBUILD_AVX2=ON"
++ lib.optional stdenv.hostPlatform.avx512Support "-DBUILD_AVX512=ON"
;
meta = with lib; {
description = "A portable fork of the high-performance regular expression matching library";
longDescription = ''
A fork of Intel's Hyperscan, modified to run on more platforms. Currently
ARM NEON/ASIMD is 100% functional, and Power VSX are in development.
ARM SVE2 will be implemented when hardware becomes accessible to the
developers. More platforms will follow in the future, on demand/request.
Vectorscan will follow Intel's API and internal algorithms where possible,
but will not hesitate to make code changes where it is thought of giving
better performance or better portability. In addition, the code will be
gradually simplified and made more uniform and all architecture specific
code will be abstracted away.
'';
homepage = "https://www.vectorcamp.gr/vectorscan/";
changelog = "https://github.com/VectorCamp/vectorscan/blob/${src.rev}/CHANGELOG-vectorscan.md";
platforms = platforms.unix;
license = with licenses; [ bsd3 /* and */ bsd2 /* and */ licenses.boost ];
maintainers = with maintainers; [ tnias vlaci ];
};
}