mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-23 15:33:13 +00:00
vectorscan: improve FAT_RUNTIME and run checks
This commit is contained in:
parent
85d3f97277
commit
23074d5de8
@ -30,11 +30,37 @@ stdenv.mkDerivation rec {
|
|||||||
boost
|
boost
|
||||||
];
|
];
|
||||||
|
|
||||||
cmakeFlags = lib.optional enableShared "-DBUILD_STATIC_AND_SHARED=ON"
|
# FAT_RUNTIME bundles optimized implementations for different CPU extensions and uses CPUID to
|
||||||
++ [ "-DFAT_RUNTIME=${if stdenv.hostPlatform.isLinux then "ON" else "OFF"}" ]
|
# transparently select the fastest for the current hardware.
|
||||||
++ lib.optional stdenv.hostPlatform.avx2Support "-DBUILD_AVX2=ON"
|
# This feature is only available on linux for x86, x86_64, and aarch64.
|
||||||
++ lib.optional stdenv.hostPlatform.avx512Support "-DBUILD_AVX512=ON"
|
#
|
||||||
;
|
# 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; {
|
meta = with lib; {
|
||||||
description = "A portable fork of the high-performance regular expression matching library";
|
description = "A portable fork of the high-performance regular expression matching library";
|
||||||
|
Loading…
Reference in New Issue
Block a user