1{ llvmPackages
2, lib
3, fetchFromGitHub
4, cmake
5, libpng
6, libjpeg
7, mesa
8, eigen
9, openblas
10, blas
11, lapack
12}:
13
14assert blas.implementation == "openblas" && lapack.implementation == "openblas";
15
16llvmPackages.stdenv.mkDerivation rec {
17 pname = "halide";
18 version = "15.0.1";
19
20 src = fetchFromGitHub {
21 owner = "halide";
22 repo = "Halide";
23 rev = "v${version}";
24 sha256 = "sha256-mnZ6QMqDr48bH2W+andGZj2EhajXKApjuW6B50xtzx0=";
25 };
26
27 cmakeFlags = [ "-DWARNINGS_AS_ERRORS=OFF" "-DWITH_PYTHON_BINDINGS=OFF" "-DTARGET_WEBASSEMBLY=OFF" ];
28
29 # Note: only openblas and not atlas part of this Nix expression
30 # see pkgs/development/libraries/science/math/liblapack/3.5.0.nix
31 # to get a hint howto setup atlas instead of openblas
32 buildInputs = [
33 llvmPackages.llvm
34 llvmPackages.lld
35 llvmPackages.openmp
36 llvmPackages.libclang
37 libpng
38 libjpeg
39 mesa
40 eigen
41 openblas
42 ];
43
44 nativeBuildInputs = [ cmake ];
45
46 meta = with lib; {
47 description = "C++ based language for image processing and computational photography";
48 homepage = "https://halide-lang.org";
49 license = licenses.mit;
50 platforms = platforms.all;
51 maintainers = with maintainers; [ ck3d atila ];
52 };
53}