Merge pull request #303207 from tnias/update/vectorscan-5.4.11
vectorscan: 5.4.10.1 -> 5.4.11
This commit is contained in:
commit
1b765a204b
|
@ -2,39 +2,71 @@
|
|||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, pkg-config
|
||||
, ragel
|
||||
, util-linux
|
||||
, python3
|
||||
, boost
|
||||
, boost184
|
||||
, sqlite
|
||||
, pcre
|
||||
, enableShared ? !stdenv.hostPlatform.isStatic
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vectorscan";
|
||||
version = "5.4.10.1";
|
||||
version = "5.4.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "VectorCamp";
|
||||
repo = "vectorscan";
|
||||
rev = "vectorscan/${version}";
|
||||
hash = "sha256-x6FefOrUvpN/A4GXTd+3SGZEAQL6pXt83ufxRIY3Q9k=";
|
||||
hash = "sha256-wz2oIhau/vjnri3LOyPZSCFAWg694FTLVt7+SZYEsL4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
ragel
|
||||
python3
|
||||
] ++ lib.optional stdenv.isLinux util-linux;
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
boost184
|
||||
sqlite
|
||||
pcre
|
||||
];
|
||||
|
||||
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"
|
||||
;
|
||||
# FAT_RUNTIME bundles optimized implementations for different CPU extensions and uses CPUID to
|
||||
# transparently select the fastest for the current hardware.
|
||||
# This feature is only available on linux for x86, x86_64, and aarch64.
|
||||
#
|
||||
# If FAT_RUNTIME is not available, we fall back to building for a single extension based
|
||||
# on stdenv.hostPlatform.
|
||||
#
|
||||
# For generic builds (e.g. x86_64) this can mean using an implementation not optimized for the
|
||||
# potentially available more modern hardware extensions (e.g. x86_64 with AVX512).
|
||||
cmakeFlags = [ (if enableShared then "-DBUILD_SHARED_LIBS=ON" else "BUILD_STATIC_LIBS=ON") ]
|
||||
++
|
||||
(if lib.elem stdenv.hostPlatform.system [ "x86_64-linux" "i686-linux" ] then
|
||||
[ "-DBUILD_AVX2=ON" "-DBUILD_AVX512=ON" "-DBUILD_AVX512VBMI=ON" "-DFAT_RUNTIME=ON" ]
|
||||
else
|
||||
(if (stdenv.isLinux && stdenv.isAarch64) then
|
||||
[ "-DBUILD_SVE=ON" "-DBUILD_SVE2=ON" "-DBUILD_SVE2_BITPERM=ON" "-DFAT_RUNTIME=ON" ]
|
||||
else
|
||||
[ "-DFAT_RUNTIME=OFF" ]
|
||||
++ lib.optional stdenv.hostPlatform.avx2Support "-DBUILD_AVX2=ON"
|
||||
++ lib.optional stdenv.hostPlatform.avx512Support "-DBUILD_AVX512=ON"
|
||||
)
|
||||
);
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
./bin/unit-hyperscan
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A portable fork of the high-performance regular expression matching library";
|
||||
|
|
Loading…
Reference in New Issue
Block a user