nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib, stdenv, cmake, ninja, gtest, fetchFromGitHub }:
2
3stdenv.mkDerivation rec {
4 pname = "libhwy";
5 version = "1.0.4";
6
7 src = fetchFromGitHub {
8 owner = "google";
9 repo = "highway";
10 rev = version;
11 hash = "sha256-bQtfye+gn7GOyzCtji4st5hsV40rPzuaYDP7N1tZ8wg=";
12 };
13
14 nativeBuildInputs = [ cmake ninja ];
15
16 # Required for case-insensitive filesystems ("BUILD" exists)
17 dontUseCmakeBuildDir = true;
18
19 cmakeFlags = let
20 libExt = stdenv.hostPlatform.extensions.library;
21 in [
22 "-GNinja"
23 "-DCMAKE_INSTALL_LIBDIR=lib"
24 "-DCMAKE_INSTALL_INCLUDEDIR=include"
25 ] ++ lib.optionals doCheck [
26 "-DHWY_SYSTEM_GTEST:BOOL=ON"
27 "-DGTEST_INCLUDE_DIR=${lib.getDev gtest}/include"
28 "-DGTEST_LIBRARY=${lib.getLib gtest}/lib/libgtest${libExt}"
29 "-DGTEST_MAIN_LIBRARY=${lib.getLib gtest}/lib/libgtest_main${libExt}"
30 ] ++ lib.optionals stdenv.hostPlatform.isAarch32 [
31 "-DHWY_CMAKE_ARM7=ON"
32 ];
33
34 # hydra's darwin machines run into https://github.com/libjxl/libjxl/issues/408
35 doCheck = !stdenv.hostPlatform.isDarwin;
36
37 meta = with lib; {
38 description = "Performance-portable, length-agnostic SIMD with runtime dispatch";
39 homepage = "https://github.com/google/highway";
40 license = licenses.asl20;
41 platforms = platforms.unix;
42 maintainers = with maintainers; [ zhaofengli ];
43 };
44}