diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index ca32acb5933a..0d8f71d9808b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -13353,6 +13353,12 @@ githubId = 16765155; name = "Shardul Baral"; }; + sharzy = { + email = "me@sharzy.in"; + github = "SharzyL"; + githubId = 46294732; + name = "Sharzy"; + }; shawndellysse = { email = "sdellysse@gmail.com"; github = "sdellysse"; diff --git a/pkgs/development/compilers/circt/default.nix b/pkgs/development/compilers/circt/default.nix new file mode 100644 index 000000000000..7c986ebfca4a --- /dev/null +++ b/pkgs/development/compilers/circt/default.nix @@ -0,0 +1,63 @@ +{ stdenv +, lib +, cmake +, coreutils +, python3 +, git +, fetchFromGitHub +, ninja +}: + +let + pythonEnv = python3.withPackages (ps: [ ps.psutil ]); +in +stdenv.mkDerivation rec { + pname = "circt"; + version = "1.29.0"; + src = fetchFromGitHub { + owner = "llvm"; + repo = "circt"; + rev = "firtool-${version}"; + sha256 = "sha256-HsXwh98RZuXvK/KkZ2NAGwWNLxUAQVj+WKzZXd4C4Is="; + fetchSubmodules = true; + }; + + requiredSystemFeatures = [ "big-parallel" ]; + + nativeBuildInputs = [ cmake ninja git pythonEnv ]; + + cmakeDir = "../llvm/llvm"; + cmakeFlags = [ + "-DLLVM_ENABLE_BINDINGS=OFF" + "-DLLVM_ENABLE_OCAMLDOC=OFF" + "-DLLVM_BUILD_EXAMPLES=OFF" + "-DLLVM_OPTIMIZED_TABLEGEN=ON" + "-DLLVM_ENABLE_PROJECTS=mlir" + "-DLLVM_EXTERNAL_PROJECTS=circt" + "-DLLVM_EXTERNAL_CIRCT_SOURCE_DIR=.." + "-DCIRCT_LLHD_SIM_ENABLED=OFF" + ]; + + preConfigure = '' + substituteInPlace test/circt-reduce/test/annotation-remover.mlir --replace "/usr/bin/env" "${coreutils}/bin/env" + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + mv bin/{{fir,hls}tool,circt-{as,dis,lsp-server,opt,reduce,translate}} $out/bin + runHook postInstall + ''; + + doCheck = true; + checkTarget = "check-circt check-circt-integration"; + + meta = { + description = "Circuit IR compilers and tools"; + homepage = "https://circt.org/"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ sharzy ]; + platforms = lib.platforms.all; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c7abb7840b4c..c400a4914877 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -390,6 +390,8 @@ with pkgs; chrysalis = callPackage ../applications/misc/chrysalis { }; + circt = callPackage ../development/compilers/circt { }; + classicube = callPackage ../games/classicube { }; clj-kondo = callPackage ../development/tools/clj-kondo { };