Unverified Commit 6d0c8760 authored by Rahul Butani's avatar Rahul Butani
Browse files

llvmPackages_15.llvm: add in a missing check dep

parent 2a58596d
Loading
Loading
Loading
Loading
+28 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
, which
, buildLlvmTools
, debugVersion ? false
, doCheck ? true
, enableManpages ? false
, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
, enablePFM ? stdenv.isLinux /* PFM only supports Linux */
@@ -33,6 +34,29 @@ let
  shortVersion = with lib;
    concatStringsSep "." (take 1 (splitString "." release_version));

  # Ordinarily we would just the `doCheck` and `checkDeps` functionality
  # `mkDerivation` gives us to manage our test dependencies (instead of breaking
  # out `doCheck` as a package level attribute).
  #
  # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in
  # particular the children it uses to do feature detection.
  #
  # This means that python deps we add to `checkDeps` (which the python
  # interpreter is made aware of via `$PYTHONPATH` – populated by the python
  # setup hook) are not picked up by `lit` which causes it to skip tests.
  #
  # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work
  # because this package is shadowed in `$PATH` by the regular `python3`
  # package.
  #
  # So, we "manually" assemble one python derivation for the package to depend
  # on, taking into account whether checks are enabled or not:
  python = if doCheck then
    let
      checkDeps = ps: with ps; [ psutil ];
    in python3.withPackages checkDeps
  else python3;

in stdenv.mkDerivation (rec {
  pname = "llvm";
  inherit version;
@@ -51,7 +75,7 @@ in stdenv.mkDerivation (rec {

  outputs = [ "out" "lib" "dev" "python" ];

  nativeBuildInputs = [ cmake ninja python3 ]
  nativeBuildInputs = [ cmake ninja python ]
    ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];

  buildInputs = [ libxml2 libffi ]
@@ -59,7 +83,9 @@ in stdenv.mkDerivation (rec {

  propagatedBuildInputs = [ ncurses zlib ];

  nativeCheckInputs = [ which ];
  nativeCheckInputs = [
    which
  ] ++ lib.optional stdenv.isDarwin sysctl;

  patches = [
    ./gnu-install-dirs.patch