llvmPackages.*: Add devExtraCmakeFlags parameter (#342040)

This commit is contained in:
Tristan Ross 2024-09-22 11:29:19 -07:00 committed by GitHub
commit 464d8f5eff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 29 additions and 13 deletions

View File

@ -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) [
(lib.cmakeFeature "LLVM_TABLEGEN_EXE" "${buildLlvmTools.llvm}/bin/llvm-tblgen")
];
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/..

View File

@ -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

View File

@ -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
@ -134,9 +135,9 @@ stdenv.mkDerivation ({
"-DCOMPILER_RT_ENABLE_IOS=OFF"
]) ++ lib.optionals (lib.versionAtLeast version "19" && stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
"-DSANITIZER_MIN_OSX_VERSION=10.10"
] ++ lib.optionals (noSanitizers && lib.versionAtLeast release_version "19") [
] ++ lib.optionals (noSanitizers && lib.versionAtLeast release_version "19") [
"-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF"
];
] ++ devExtraCmakeFlags;
outputs = [ "out" "dev" ];

View File

@ -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

View File

@ -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

View File

@ -13,6 +13,7 @@
, libxml2
, libllvm
, version
, devExtraCmakeFlags ? []
}:
let
pname = "lld";
@ -55,7 +56,7 @@ stdenv.mkDerivation (rec {
"-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
];
] ++ devExtraCmakeFlags;
# Musl's default stack size is too small for lld to be able to link Firefox.
LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";

View File

@ -23,6 +23,7 @@
, monorepoSrc ? null
, patches ? [ ]
, enableManpages ? false
, devExtraCmakeFlags ? [ ]
, ...
}:
@ -142,7 +143,7 @@ stdenv.mkDerivation (rec {
]) ++ lib.optionals doCheck [
"-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
"-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
];
] ++ devExtraCmakeFlags;
doCheck = false;
doInstallCheck = lib.versionOlder release_version "15";

View File

@ -40,6 +40,7 @@
&& !stdenv.hostPlatform.isAarch
, enablePolly ? lib.versionAtLeast release_version "14"
, enableTerminfo ? true
, devExtraCmakeFlags ? []
}:
let
@ -399,7 +400,7 @@ stdenv.mkDerivation (rec {
nativeInstallFlags
])
)
];
] ++ devExtraCmakeFlags;
postInstall = ''
mkdir -p $python/share

View File

@ -10,6 +10,7 @@
, libllvm
, version
, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl)
, devExtraCmakeFlags ? []
}:
stdenv.mkDerivation rec {
@ -63,7 +64,7 @@ stdenv.mkDerivation rec {
] ++ lib.optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
"-DMLIR_TABLEGEN_EXE=${buildLlvmTools.mlir}/bin/mlir-tblgen"
];
] ++ devExtraCmakeFlags;
outputs = [ "out" "dev" ];

View File

@ -15,6 +15,7 @@
, perl
, pkg-config
, version
, devExtraCmakeFlags ? []
}:
let
pname = "openmp";
@ -60,7 +61,7 @@ stdenv.mkDerivation (rec {
"-DCLANG_TOOL=${clang-unwrapped}/bin/clang"
"-DOPT_TOOL=${llvm}/bin/opt"
"-DLINK_TOOL=${llvm}/bin/llvm-link"
];
] ++ devExtraCmakeFlags;
meta = llvm_meta // {
homepage = "https://openmp.llvm.org/";