[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#27344] [PATCH v3 8/8] gnu: Add qucs-s.
From: |
Theodoros Foradis |
Subject: |
[bug#27344] [PATCH v3 8/8] gnu: Add qucs-s. |
Date: |
Sat, 9 Sep 2017 20:57:52 +0300 |
* gnu/packages/engineering.scm (qucs-s): New variable.
---
gnu/packages/engineering.scm | 122 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 122 insertions(+)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index e46b1e0d9..25221369f 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1556,3 +1556,125 @@ parallel computing platforms. It also supports serial
execution.")
e.g. DC, AC, S-parameter, Transient, Noise and Harmonic Balance analysis.
Pure digital simulations are also supported.")
(license license:gpl2+)))
+
+(define-public qucs-s
+ (package
+ (name "qucs-s")
+ (version "0.0.19S")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
"https://github.com/ra3xdh/qucs/releases/download/"
+ version "/qucs-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1bhahvdqmayaw0306fxz1ghmjhd4fq05yk3rk7zi0z703w5imgjv"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-scripts
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("qucs/qucsdigi"
+ "qucs/qucsdigilib"
+ "qucs/qucsveri")
+ (("\\$BINDIR")
+ (string-append (assoc-ref inputs "qucs") "/bin"))
+ (("freehdl-config")
+ (string-append (assoc-ref inputs "freehdl")
"/bin/freehdl-config"))
+ (("freehdl-v2cc")
+ (string-append (assoc-ref inputs "freehdl")
"/bin/freehdl-v2cc"))
+ (("cp ")
+ (string-append (assoc-ref inputs "coreutils") "/bin/cp" " "))
+ (("glibtool")
+ (string-append (assoc-ref inputs "libtool") "/bin/libtool"))
+ (("sed")
+ (string-append (assoc-ref inputs "sed") "/bin/sed"))
+ (("iverilog")
+ (string-append (assoc-ref inputs "iverilog") "/bin/iverilog"))
+ (("vvp")
+ (string-append (assoc-ref inputs "iverilog") "/bin/vvp")))
+ #t))
+ (add-after 'patch-scripts 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "qucs/main.cpp"
+ (("QucsSettings\\.Qucsator = QucsSettings\\.BinDir
+ \\+ \"qucsator\" \\+ executableSuffix")
+ (string-append "}{ QucsSettings.Qucsator = \""
+ (assoc-ref inputs "qucs") "/bin/qucsator\""))
+ (("else QucsSettings\\.XyceExecutable =
+ \"/usr/local/Xyce-Release-6.2.0-OPENSOURCE/bin/runxyce")
+ (string-append "QucsSettings.XyceExecutable = \""
+ (assoc-ref inputs "xyce-serial") "/bin/Xyce"))
+ (("else QucsSettings\\.XyceParExecutable =
+ \"/usr/local/Xyce-Release-6.2.0-OPENMPI-OPENSOURCE/bin/xmpirun")
+ (string-append "QucsSettings.XyceParExecutable = \""
+ (assoc-ref inputs "mpi") "/bin/mpirun"))
+ (("%p")
+ (string-append "%p "(assoc-ref inputs "xyce-parallel")
"/bin/Xyce"))
+ (("else QucsSettings\\.NgspiceExecutable = \"ngspice\"")
+ (string-append "QucsSettings.NgspiceExecutable = " "\""
+ (assoc-ref inputs "ngspice") "/bin/ngspice\"")))
+ (substitute* "qucs/qucs_actions.cpp"
+ (("qucstrans")
+ (string-append (assoc-ref inputs "qucs") "/bin/qucstrans"))
+ (("qucsattenuator")
+ (string-append (assoc-ref inputs "qucs")
"/bin/qucsattenuator"))
+ (("qucsrescodes")
+ (string-append (assoc-ref inputs "qucs") "/bin/qucsrescodes")))
+ #t))
+ (add-after 'install 'install-scripts
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (for-each
+ (lambda (script)
+ (let ((file (string-append "../qucs-" ,version
+ "/qucs/" script))
+ (out (assoc-ref outputs "out")))
+ (install-file file (string-append out "/bin"))
+ (chmod (string-append out "/bin/" script) #o555)))
+ '("qucsdigi" "qucsdigilib" "qucsveri"))
+ #t))
+ (add-after 'install-scripts 'make-wrapper
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (file (string-append out "/bin/qucs-s"))
+ (qucs (assoc-ref inputs "qucs"))
+ (qucsator (string-append qucs "/bin/qucsator")))
+ (wrap-program file
+ `("QUCSATOR" ":" prefix (,qucsator))
+ `("QUCSCONV" ":" prefix (,(string-append qucsator
"/bin/qucsconv")))
+ `("ADMSXMLBINDIR" ":" prefix (,(string-append (assoc-ref
inputs "adms")
+ "/bin")))
+ `("ASCOBINDIR" ":" prefix (,(string-append (assoc-ref inputs
"asco")
+ "/bin")))
+ `("QUCS_OCTAVE" ":" prefix (,(string-append (assoc-ref inputs
"octave")
+ "/bin/octave"))))
+ (symlink qucsator (string-append out "/bin/qucsator"))
+ #t))))))
+ (native-inputs
+ `(("libtool-native" ,libtool)))
+ (inputs
+ `(("adms" ,adms)
+ ("asco" ,asco)
+ ("coreutils" ,coreutils)
+ ("freehdl" ,freehdl)
+ ("iverilog" ,iverilog)
+ ("libtool" ,libtool)
+ ("mpi" ,openmpi)
+ ("ngspice" ,ngspice)
+ ("octave" ,octave)
+ ("qt4" ,qt-4)
+ ("qucs" ,qucs)
+ ("sed" ,sed)
+ ("xyce-serial" ,xyce-serial)
+ ("xyce-parallel" ,xyce-parallel)))
+ (propagated-inputs
+ `(("gcc-toolchain" ,gcc-toolchain-5))); for freehdl
+ (home-page "https://ra3xdh.github.io/")
+ (synopsis "Circuit simulator with graphical user interface")
+ (description
+ "Qucs-S is a spin-off of the Qucs cross-platform circuit simulator.
+ S letter indicates SPICE. The purpose of the Qucs-S subproject is to use
+free SPICE circuit simulation kernels with the Qucs GUI. It provides the
+simulator backends @code{Qucsator}, @code{ngspice} and @code{Xyce}.")
+ (license license:gpl2+)))
--
2.13.4
- [bug#27344] [PATCH 0/12] Add computational software and circuit simulators, Theodoros Foradis, 2017/09/09
- [bug#27344] [PATCH v3 1/8] gnu: Add asco., Theodoros Foradis, 2017/09/09
- [bug#27344] [PATCH v3 7/8] gnu: Add qucs., Theodoros Foradis, 2017/09/09
- [bug#27344] [PATCH v3 3/8] gnu: Add lapack-3.5., Theodoros Foradis, 2017/09/09
- [bug#27344] [PATCH v3 6/8] gnu: Add freehdl., Theodoros Foradis, 2017/09/09
- [bug#27344] [PATCH v3 5/8] gnu: Add xyce-parallel., Theodoros Foradis, 2017/09/09
- [bug#27344] [PATCH v3 8/8] gnu: Add qucs-s.,
Theodoros Foradis <=
- [bug#27344] [PATCH v3 4/8] gnu: Add xyce-serial., Theodoros Foradis, 2017/09/09
- [bug#27344] [PATCH v3 2/8] gnu: Add libngspice and ngspice., Theodoros Foradis, 2017/09/09
- [bug#27344] [PATCH v3 1/8] gnu: Add asco., Theodoros Foradis, 2017/09/09