diff options
author | Arnout Engelen <arnout@bzzt.net> | 2024-02-20 23:43:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-20 23:43:07 +0100 |
commit | 8b1ad909bdda5819a7c71c89d9bffea029a67a8e (patch) | |
tree | 605c70e014e2d953a1826dfb2c3b42c23b47574d /pkgs/applications/science | |
parent | 34a74f25512836591c50a1928e853e7105e4be33 (diff) | |
parent | af0add86d4e9e837b04b7e2ce515acecfde6da5b (diff) |
Merge pull request #256087 from raboof/gnucap-update
gnucap: update to 20240130-dev and add gnucap-modelgen-verilog
Diffstat (limited to 'pkgs/applications/science')
3 files changed, 101 insertions, 12 deletions
diff --git a/pkgs/applications/science/electronics/gnucap/default.nix b/pkgs/applications/science/electronics/gnucap/default.nix index 0ec10f2444fd5..d50e6eb8712d1 100644 --- a/pkgs/applications/science/electronics/gnucap/default.nix +++ b/pkgs/applications/science/electronics/gnucap/default.nix @@ -1,16 +1,15 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "gnucap"; - version = "20210107"; - - src = fetchurl { - url = "https://git.savannah.gnu.org/cgit/gnucap.git/snapshot/${pname}-${version}.tar.gz"; - sha256 = "12rlwd4mfc54qq1wrx5k8qk578xls5z4isf94ybkf2z6qxk4mhnj"; - }; - - doCheck = true; +{ lib +, stdenv +, fetchurl +, readline +, termcap +, gnucap +, callPackage +, writeScript +}: +let + version = "20240130-dev"; meta = with lib; { description = "Gnu Circuit Analysis Package"; longDescription = '' @@ -23,5 +22,52 @@ It performs nonlinear dc and transient analyses, fourier analysis, and ac analys platforms = platforms.all; broken = stdenv.isDarwin; # Relies on LD_LIBRARY_PATH maintainers = [ maintainers.raboof ]; + mainProgram = "gnucap"; }; +in +stdenv.mkDerivation rec { + pname = "gnucap"; + inherit version; + + src = fetchurl { + url = "https://git.savannah.gnu.org/cgit/gnucap.git/snapshot/${pname}-${version}.tar.gz"; + hash = "sha256-MUCtGw3BxGWgXgUwzklq5T1y9kjBTnFBa0/GK0hhl0E="; + }; + + buildInputs = [ + readline + termcap + ]; + + doCheck = true; + + inherit meta; +} // { + plugins = callPackage ./plugins.nix {}; + withPlugins = p: + let + selectedPlugins = p gnucap.plugins; + wrapper = writeScript "gnucap" '' + export GNUCAP_PLUGPATH=${gnucap}/lib/gnucap + for plugin in ${builtins.concatStringsSep " " selectedPlugins}; do + export GNUCAP_PLUGPATH=$plugin/lib/gnucap:$GNUCAP_PLUGPATH + done + ${lib.getExe gnucap} + ''; + in + stdenv.mkDerivation { + pname = "gnucap-with-plugins"; + inherit version; + + propagatedBuildInputs = selectedPlugins; + + phases = [ "installPhase" "fixupPhase" ]; + + installPhase = '' + mkdir -p $out/bin + cp ${wrapper} $out/bin/gnucap + ''; + + inherit meta; + }; } diff --git a/pkgs/applications/science/electronics/gnucap/modelgen-verilog.nix b/pkgs/applications/science/electronics/gnucap/modelgen-verilog.nix new file mode 100644 index 0000000000000..c22cd368bee69 --- /dev/null +++ b/pkgs/applications/science/electronics/gnucap/modelgen-verilog.nix @@ -0,0 +1,37 @@ +{ lib +, stdenv +, fetchurl +, gnucap +}: + +stdenv.mkDerivation rec { + pname = "gnucap-modelgen-verilog"; + version = "20240130-dev"; + + src = fetchurl { + url = "https://git.savannah.gnu.org/cgit/gnucap/gnucap-modelgen-verilog.git/snapshot/${pname}-${version}.tar.gz"; + hash = "sha256-7w0eWUJKVRYFicQgDvKrJTkZ6fzgwxvcCKj78KrHj8E="; + }; + + propagatedBuildInputs = [ gnucap ]; + + doCheck = true; + + preInstall = '' + export GNUCAP_EXEC_PREFIX=$out + export GNUCAP_DATA=$out/share/gnucap + mkdir -p $out/include/gnucap + export GNUCAP_INCLUDEDIR=$out/include/gnucap + export GNUCAP_PKGLIBDIR=$out/lib/gnucap + ''; + + meta = with lib; { + description = "gnucap modelgen to preprocess, parse and dump vams files."; + homepage = "http://www.gnucap.org/"; + changelog = "https://git.savannah.gnu.org/cgit/gnucap.git/plain/NEWS?h=v${version}"; + mainProgram = "gnucap-mg-vams"; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = [ maintainers.raboof ]; + }; +} diff --git a/pkgs/applications/science/electronics/gnucap/plugins.nix b/pkgs/applications/science/electronics/gnucap/plugins.nix new file mode 100644 index 0000000000000..fbdcd9548b334 --- /dev/null +++ b/pkgs/applications/science/electronics/gnucap/plugins.nix @@ -0,0 +1,6 @@ +{ callPackage +}: + +{ + verilog = callPackage ./modelgen-verilog.nix {}; +} |