ocamlPackages.hxd: 0.3.2 -> 0.3.3 (#364231)
[NixPkgs.git] / pkgs / by-name / uc / ucc / package.nix
blob7c93a36f1b626cdd5ea5f9c684e7f65530f0eb84
2   stdenv,
3   lib,
4   fetchFromGitHub,
5   libtool,
6   automake,
7   autoconf,
8   ucx,
9   config,
10   enableCuda ? config.cudaSupport,
11   cudaPackages,
12   enableAvx ? stdenv.hostPlatform.avxSupport,
13   enableSse41 ? stdenv.hostPlatform.sse4_1Support,
14   enableSse42 ? stdenv.hostPlatform.sse4_2Support,
17 stdenv.mkDerivation rec {
18   pname = "ucc";
19   version = "1.3.0";
21   src = fetchFromGitHub {
22     owner = "openucx";
23     repo = "ucc";
24     rev = "v${version}";
25     sha256 = "sha256-xcJLYktkxNK2ewWRgm8zH/dMaIoI+9JexuswXi7MpAU=";
26   };
28   outputs = [
29     "out"
30     "dev"
31   ];
33   enableParallelBuilding = true;
35   postPatch = ''
37     for comp in $(find src/components -name Makefile.am); do
38       substituteInPlace $comp \
39         --replace "/bin/bash" "${stdenv.shell}"
40     done
41   '';
43   nativeBuildInputs = [
44     libtool
45     automake
46     autoconf
47   ] ++ lib.optionals enableCuda [ cudaPackages.cuda_nvcc ];
48   buildInputs =
49     [ ucx ]
50     ++ lib.optionals enableCuda [
51       cudaPackages.cuda_cccl
52       cudaPackages.cuda_cudart
53     ];
55   preConfigure =
56     ''
57       ./autogen.sh
58     ''
59     + lib.optionalString enableCuda ''
60       configureFlagsArray+=( "--with-nvcc-gencode=${builtins.concatStringsSep " " cudaPackages.cudaFlags.gencode}" )
61     '';
62   configureFlags =
63     [ ]
64     ++ lib.optional enableSse41 "--with-sse41"
65     ++ lib.optional enableSse42 "--with-sse42"
66     ++ lib.optional enableAvx "--with-avx"
67     ++ lib.optional enableCuda "--with-cuda=${cudaPackages.cuda_cudart}";
69   postInstall = ''
70     find $out/lib/ -name "*.la" -exec rm -f \{} \;
72     moveToOutput bin/ucc_info $dev
73   '';
75   meta = with lib; {
76     description = "Collective communication operations API";
77     mainProgram = "ucc_info";
78     license = licenses.bsd3;
79     maintainers = [ maintainers.markuskowa ];
80     platforms = platforms.linux;
81   };