nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib
2, stdenv
3, fetchFromGitHub
4, rocmUpdateScript
5, substituteAll
6, cmake
7, llvm
8, rocm-runtime
9, rocminfo
10, lsb-release
11}:
12
13stdenv.mkDerivation (finalAttrs: {
14 pname = "hipcc";
15 version = "5.4.2";
16
17 src = fetchFromGitHub {
18 owner = "ROCm-Developer-Tools";
19 repo = "HIPCC";
20 rev = "rocm-${finalAttrs.version}";
21 hash = "sha256-PEwue4O43MiMkF8UmTeHsmlikBG2V3/nFQLKmtHrRWQ=";
22 };
23
24 patches = [
25 (substituteAll {
26 src = ./0000-fixup-paths.patch;
27 inherit llvm rocminfo;
28 version_major = lib.versions.major finalAttrs.version;
29 version_minor = lib.versions.minor finalAttrs.version;
30 version_patch = lib.versions.patch finalAttrs.version;
31 clang = stdenv.cc;
32 rocm_runtime = rocm-runtime;
33 lsb_release = lsb-release;
34 })
35 ];
36
37 nativeBuildInputs = [ cmake ];
38
39 installPhase = ''
40 runHook preInstall
41
42 mkdir -p $out/bin
43 mv *.bin $out/bin
44
45 runHook postInstall
46 '';
47
48 passthru.updateScript = rocmUpdateScript {
49 name = finalAttrs.pname;
50 owner = finalAttrs.src.owner;
51 repo = finalAttrs.src.repo;
52 };
53
54 meta = with lib; {
55 description = "Compiler driver utility that calls clang or nvcc";
56 homepage = "https://github.com/ROCm-Developer-Tools/HIPCC";
57 license = with licenses; [ mit ];
58 maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
59 platforms = platforms.linux;
60 broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version;
61 };
62})