Files
nixpkgs/pkgs/development/compilers/llvm/common/flang-rt/default.nix
Aliaksandr 9921d05da3 treewide: replace stdenv.is* with stdenv.hostPlatform.is*
Assisted-by: claude-code with claude-opus-4-8
2026-08-12 20:27:00 +02:00

85 lines
2.0 KiB
Nix

{
lib,
stdenv,
llvm_meta,
monorepoSrc,
runCommand,
cmake,
libllvm,
ninja,
python3,
buildFlang,
version,
}:
let
minDarwinVersion = "10.12";
effectiveDarwinVersion =
if
stdenv.hostPlatform.isDarwin
&& lib.versionOlder stdenv.hostPlatform.darwinMinVersion minDarwinVersion
then
minDarwinVersion
else
stdenv.hostPlatform.darwinMinVersion;
in
stdenv.mkDerivation (finalAttrs: {
pname = "flang-rt";
inherit version;
src =
runCommand "${finalAttrs.pname}-src-${version}"
{
inherit (monorepoSrc) passthru;
}
''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
mkdir -p "$out/llvm"
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
cp -r ${monorepoSrc}/third-party "$out"
cp -r ${monorepoSrc}/${finalAttrs.pname} "$out"
cp -r ${monorepoSrc}/flang "$out"
cp -r ${monorepoSrc}/runtimes "$out"
'';
sourceRoot = "${finalAttrs.src.name}/runtimes";
outputs = [ "out" ];
nativeBuildInputs = [
buildFlang
cmake
ninja
python3
];
buildInputs = [
libllvm
];
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
MACOSX_DEPLOYMENT_TARGET = effectiveDarwinVersion;
NIX_CFLAGS_COMPILE = "-mmacosx-version-min=${effectiveDarwinVersion}";
};
cmakeFlags = [
(lib.cmakeFeature "LLVM_DEFAULT_TARGET_TRIPLE" stdenv.hostPlatform.config)
(lib.cmakeFeature "CMAKE_Fortran_COMPILER" "${buildFlang}/bin/flang")
(lib.cmakeBool "CMAKE_Fortran_COMPILER_WORKS" true)
(lib.cmakeBool "CMAKE_Fortran_COMPILER_SUPPORTS_F90" true)
(lib.cmakeFeature "LLVM_DIR" "${libllvm.dev}/lib/cmake/llvm")
(lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" "flang-rt")
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
(lib.cmakeFeature "CMAKE_OSX_DEPLOYMENT_TARGET" effectiveDarwinVersion)
];
meta = llvm_meta // {
homepage = "https://flang.llvm.org";
description = "LLVM Fortran Runtime";
};
})