Unverified Commit 464d8f5e authored by Tristan Ross's avatar Tristan Ross Committed by GitHub
Browse files

llvmPackages.*: Add devExtraCmakeFlags parameter (#342040)

parents 84b1d4e0 290ec4e7
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
  python3,
  buildLlvmTools,
  patches ? [ ],
  devExtraCmakeFlags ? [ ],
}:

stdenv.mkDerivation (finalAttrs: {
@@ -43,9 +44,11 @@ stdenv.mkDerivation (finalAttrs: {
    libxml2
  ];

  cmakeFlags = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
  cmakeFlags =
    lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
      (lib.cmakeFeature "LLVM_TABLEGEN_EXE" "${buildLlvmTools.llvm}/bin/llvm-tblgen")
  ];
    ]
    ++ devExtraCmakeFlags;

  postUnpack = ''
    chmod -R u+w -- $sourceRoot/..
+4 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
, fixDarwinDylibNames
, enableManpages ? false
, clang-tools-extra_src ? null
, devExtraCmakeFlags ? []
}:

let
@@ -69,7 +70,9 @@ let
      # `clang-pseudo-gen`: https://github.com/llvm/llvm-project/commit/cd2292ef824591cc34cc299910a3098545c840c7
      "-DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${buildLlvmTools.libclang.dev}/bin/clang-tidy-confusable-chars-gen"
      "-DCLANG_PSEUDO_GEN=${buildLlvmTools.libclang.dev}/bin/clang-pseudo-gen"
    ]) ++ lib.optional (stdenv.targetPlatform.useLLVM or false) "-DCLANG_DEFAULT_CXX_STDLIB=ON";
    ]) ++ lib.optionals (stdenv.targetPlatform.useLLVM or false) [
      "-DCLANG_DEFAULT_CXX_STDLIB=ON"
    ] ++ devExtraCmakeFlags;

    postPatch = ''
      # Make sure clang passes the correct location of libLTO to ld64
+3 −2
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
# `libcompiler_rt` library, at least under certain configurations. Some
# platforms stil expect this, however, so we symlink one into place.
, forceLinkCompilerRt ? stdenv.hostPlatform.isOpenBSD
, devExtraCmakeFlags ? []
}:

let
@@ -136,7 +137,7 @@ stdenv.mkDerivation ({
    "-DSANITIZER_MIN_OSX_VERSION=10.10"
  ] ++ lib.optionals (noSanitizers && lib.versionAtLeast release_version "19") [
    "-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF"
  ];
  ] ++ devExtraCmakeFlags;

  outputs = [ "out" "dev" ];

+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
, cxxabi ? if stdenv.hostPlatform.isFreeBSD then freebsd.libcxxrt else null
, libunwind
, enableShared ? !stdenv.hostPlatform.isStatic
, devExtraCmakeFlags ? []
}:

# external cxxabi is not supported on Darwin as the build will not link libcxx
@@ -103,7 +104,8 @@ let
    "-DCMAKE_CXX_COMPILER_WORKS=ON"
    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
  ] ++ cxxCMakeFlags
    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags
    ++ devExtraCmakeFlags;

in

+3 −1
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
, python3
, libcxx
, enableShared ? !stdenv.hostPlatform.isStatic
, devExtraCmakeFlags ? []
}:
let
  pname = "libunwind";
@@ -68,7 +69,8 @@ stdenv.mkDerivation (rec {
  ];

  cmakeFlags = lib.optional (lib.versionAtLeast release_version "15") "-DLLVM_ENABLE_RUNTIMES=libunwind"
    ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
    ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"
    ++ devExtraCmakeFlags;

  meta = llvm_meta // {
    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
Loading