mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-04 04:46:43 +00:00
llvmPackages.*: Add devExtraCmakeFlags parameter (#342040)
This commit is contained in:
commit
464d8f5eff
@ -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/..
|
||||
|
@ -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
|
||||
|
@ -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" ];
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -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" ];
|
||||
|
||||
|
@ -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/";
|
||||
|
Loading…
Reference in New Issue
Block a user