biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / development / rocm-modules / 5 / roctracer / default.nix
blob9270a273dcae903f50cf328621c320fd1018418c
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , rocmUpdateScript
5 , cmake
6 , clr
7 , rocm-device-libs
8 , libxml2
9 , doxygen
10 , graphviz
11 , gcc-unwrapped
12 , libbacktrace
13 , rocm-runtime
14 , python3Packages
15 , buildDocs ? false # Nothing seems to be generated, so not making the output
16 , buildTests ? false
19 stdenv.mkDerivation (finalAttrs: {
20   pname = "roctracer";
21   version = "5.7.1";
23   outputs = [
24     "out"
25   ] ++ lib.optionals buildDocs [
26     "doc"
27   ] ++ lib.optionals buildTests [
28     "test"
29   ];
31   src = fetchFromGitHub {
32     owner = "ROCm";
33     repo = "roctracer";
34     rev = "rocm-${finalAttrs.version}";
35     hash = "sha256-P6QYyAjMRwFFWKF8AhbrYGe+mYVJXdbBW1or6vcobYU=";
36   };
38   nativeBuildInputs = [
39     cmake
40     clr
41   ] ++ lib.optionals buildDocs [
42     doxygen
43     graphviz
44   ];
46   buildInputs = [
47     libxml2
48     libbacktrace
49     python3Packages.python
50     python3Packages.cppheaderparser
51   ];
53   cmakeFlags = [
54     "-DCMAKE_MODULE_PATH=${clr}/hip/cmake"
55     # Manually define CMAKE_INSTALL_<DIR>
56     # See: https://github.com/NixOS/nixpkgs/pull/197838
57     "-DCMAKE_INSTALL_BINDIR=bin"
58     "-DCMAKE_INSTALL_LIBDIR=lib"
59     "-DCMAKE_INSTALL_INCLUDEDIR=include"
60   ];
62   env.NIX_CFLAGS_COMPILE = toString [
63     # Needed with GCC 12
64     "-Wno-error=array-bounds"
65   ];
67   postPatch = ''
68     export HIP_DEVICE_LIB_PATH=${rocm-device-libs}/amdgcn/bitcode
69   '' + lib.optionalString (!buildTests) ''
70     substituteInPlace CMakeLists.txt \
71       --replace "add_subdirectory(test)" ""
72   '';
74   # Tests always fail, probably need GPU
75   # doCheck = buildTests;
77   postInstall = lib.optionalString buildDocs ''
78     mkdir -p $doc
79   '' + lib.optionalString buildTests ''
80     mkdir -p $test/bin
81     # Not sure why this is an install target
82     find $out/test -executable -type f -exec mv {} $test/bin \;
83     rm $test/bin/{*.sh,*.py}
84     patchelf --set-rpath $out/lib:${lib.makeLibraryPath (
85       finalAttrs.buildInputs ++ [ clr gcc-unwrapped.lib rocm-runtime ])} $test/bin/*
86     rm -rf $out/test
87   '';
89   passthru.updateScript = rocmUpdateScript {
90     name = finalAttrs.pname;
91     owner = finalAttrs.src.owner;
92     repo = finalAttrs.src.repo;
93   };
95   meta = with lib; {
96     description = "Tracer callback/activity library";
97     homepage = "https://github.com/ROCm/roctracer";
98     license = with licenses; [ mit ]; # mitx11
99     maintainers = teams.rocm.members;
100     platforms = platforms.linux;
101     broken = versions.minor finalAttrs.version != versions.minor clr.version || versionAtLeast finalAttrs.version "6.0.0";
102   };