circt: fix build failure on darwin platform and refactor (#348019)
This commit is contained in:
+21
-11
@@ -1,17 +1,23 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, cmake
|
||||
, ninja
|
||||
, circt
|
||||
, llvm
|
||||
, python3
|
||||
}: stdenv.mkDerivation {
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
cmake,
|
||||
ninja,
|
||||
circt,
|
||||
llvm,
|
||||
python3,
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
pname = circt.pname + "-llvm";
|
||||
inherit (circt) version src;
|
||||
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
|
||||
nativeBuildInputs = [ cmake ninja python3 ];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
python3
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
cd llvm/llvm
|
||||
@@ -30,7 +36,11 @@
|
||||
"-DLLVM_INSTALL_UTILS=ON"
|
||||
];
|
||||
|
||||
outputs = [ "out" "lib" "dev" ];
|
||||
outputs = [
|
||||
"out"
|
||||
"lib"
|
||||
"dev"
|
||||
];
|
||||
|
||||
# Get rid of ${extra_libdir} (which ends up containing a path to circt-llvm.dev
|
||||
# in circt) so that we only have to remove the one fixed rpath.
|
||||
@@ -70,7 +80,7 @@
|
||||
#
|
||||
# Inspired by fixDarwinDylibNames.
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
local flags=(-delete_rpath @loader_path/../lib)
|
||||
local flags
|
||||
for file in "$lib"/lib/*.dylib; do
|
||||
flags+=(-change @rpath/"$(basename "$file")" "$file")
|
||||
done
|
||||
@@ -1,15 +1,16 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, cmake
|
||||
, coreutils
|
||||
, python3
|
||||
, git
|
||||
, fetchFromGitHub
|
||||
, ninja
|
||||
, lit
|
||||
, z3
|
||||
, gitUpdater
|
||||
, callPackage
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
cmake,
|
||||
coreutils,
|
||||
python3,
|
||||
git,
|
||||
fetchFromGitHub,
|
||||
ninja,
|
||||
lit,
|
||||
z3,
|
||||
gitUpdater,
|
||||
callPackage,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -29,7 +30,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
|
||||
nativeBuildInputs = [ cmake ninja git pythonEnv z3 ];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
git
|
||||
pythonEnv
|
||||
z3
|
||||
];
|
||||
buildInputs = [ circt-llvm ];
|
||||
|
||||
cmakeFlags = [
|
||||
@@ -65,7 +72,17 @@ stdenv.mkDerivation rec {
|
||||
doCheck = true;
|
||||
checkTarget = "check-circt check-circt-integration";
|
||||
|
||||
outputs = [ "out" "lib" "dev" ];
|
||||
preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
echo moving libarc-jit-env.dylib to '$lib' before check because archilator links to the output path
|
||||
mkdir -pv $lib/lib
|
||||
cp -v ./lib/libarc-jit-env.dylib $lib/lib
|
||||
'';
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"lib"
|
||||
"dev"
|
||||
];
|
||||
|
||||
# Copy circt-llvm's postFixup stage so that it can make all our dylib references
|
||||
# absolute as well.
|
||||
@@ -89,7 +106,11 @@ stdenv.mkDerivation rec {
|
||||
description = "Circuit IR compilers and tools";
|
||||
homepage = "https://circt.org/";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ sharzy pineapplehunter sequencer ];
|
||||
maintainers = with lib.maintainers; [
|
||||
sharzy
|
||||
pineapplehunter
|
||||
sequencer
|
||||
];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -446,8 +446,6 @@ with pkgs;
|
||||
|
||||
ciel = callPackage ../tools/package-management/ciel { };
|
||||
|
||||
circt = callPackage ../development/compilers/circt { };
|
||||
|
||||
clang-uml = callPackage ../by-name/cl/clang-uml/package.nix {
|
||||
stdenv = clangStdenv;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user