diff --git a/overlay.nix b/overlay.nix index d337347..1c5577b 100644 --- a/overlay.nix +++ b/overlay.nix @@ -46,6 +46,7 @@ let stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; }; tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; tampi = callPackage ./pkgs/tampi/default.nix { }; + vivado = callPackage ./pkgs/vivado/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { }; }; diff --git a/pkgs/vivado/default.nix b/pkgs/vivado/default.nix new file mode 100644 index 0000000..c99f4b9 --- /dev/null +++ b/pkgs/vivado/default.nix @@ -0,0 +1,55 @@ +# Thanks to MLabs to made the switch. + +{ + stdenv +, lib +, ncurses5 +, libxcrypt-legacy +, zlib +, libuuid +, xorg +, freetype +, fontconfig +, buildFHSEnv +}: + +with lib; + +let + vivadoDeps = pkgs: + let + # Apply patch from https://github.com/nix-community/nix-environments/pull/54 + # to fix ncurses libtinfo.so's soname issue + ncurses' = ncurses5.overrideAttrs (old: { + configureFlags = old.configureFlags ++ ["--with-termlib"]; + postFixup = ""; + }); + in [ + libxcrypt-legacy + (ncurses'.override {unicodeSupport = false;}) + zlib + libuuid + xorg.libSM + xorg.libICE + xorg.libXrender + xorg.libX11 + xorg.libXext + xorg.libXtst + xorg.libXi + freetype + fontconfig + ]; + + vivadoEnv = buildFHSEnv { + name = "vivado-env"; + targetPkgs = vivadoDeps; + }; + + vivado = buildFHSEnv { + name = "vivado"; + targetPkgs = vivadoDeps; + profile = "set -e; source /opt/Xilinx/Vivado/2024.2/settings64.sh"; + runScript = "vivado"; + }; +in + vivadoEnv