python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / hipcub / default.nix
blobfacb890a3eb7cc2c6766358fab0f10e5f09b340b
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , rocm-cmake
6 , rocm-runtime
7 , rocm-device-libs
8 , rocm-comgr
9 , rocprim
10 , hip
11 , gtest ? null
12 , gbenchmark ? null
13 , buildTests ? false
14 , buildBenchmarks ? false
17 assert buildTests -> gtest != null;
18 assert buildBenchmarks -> gbenchmark != null;
20 # CUB can also be used as a backend instead of rocPRIM.
21 stdenv.mkDerivation rec {
22   pname = "hipcub";
23   rocmVersion = "5.3.1";
24   version = "2.12.0-${rocmVersion}";
26   outputs = [
27     "out"
28   ] ++ lib.optionals buildTests [
29     "test"
30   ] ++ lib.optionals buildBenchmarks [
31     "benchmark"
32   ];
34   src = fetchFromGitHub {
35     owner = "ROCmSoftwarePlatform";
36     repo = "hipCUB";
37     rev = "rocm-${rocmVersion}";
38     hash = "sha256-/GMZKbMD1sZQCM2FulM9jiJQ8ByYZinn0C8d/deFh0g=";
39   };
41   nativeBuildInputs = [
42     cmake
43     rocm-cmake
44     hip
45   ];
47   buildInputs = [
48     rocm-runtime
49     rocm-device-libs
50     rocm-comgr
51     rocprim
52   ] ++ lib.optionals buildTests [
53     gtest
54   ] ++ lib.optionals buildBenchmarks [
55     gbenchmark
56   ];
58   cmakeFlags = [
59     "-DCMAKE_CXX_COMPILER=hipcc"
60     "-DHIP_ROOT_DIR=${hip}"
61     # Manually define CMAKE_INSTALL_<DIR>
62     # See: https://github.com/NixOS/nixpkgs/pull/197838
63     "-DCMAKE_INSTALL_BINDIR=bin"
64     "-DCMAKE_INSTALL_LIBDIR=lib"
65     "-DCMAKE_INSTALL_INCLUDEDIR=include"
66   ] ++ lib.optionals buildTests [
67     "-DBUILD_TEST=ON"
68   ] ++ lib.optionals buildBenchmarks [
69     "-DBUILD_BENCHMARK=ON"
70   ];
72   postInstall = lib.optionalString buildTests ''
73     mkdir -p $test/bin
74     mv $out/bin/test_* $test/bin
75   '' + lib.optionalString buildBenchmarks ''
76     mkdir -p $benchmark/bin
77     mv $out/bin/benchmark_* $benchmark/bin
78   '' + lib.optionalString (buildTests || buildBenchmarks) ''
79     rmdir $out/bin
80   '';
82   meta = with lib; {
83     description = "Thin wrapper library on top of rocPRIM or CUB";
84     homepage = "https://github.com/ROCmSoftwarePlatform/hipCUB";
85     license = with licenses; [ bsd3 ];
86     maintainers = with maintainers; [ Madouura ];
87     broken = rocmVersion != hip.version;
88   };