me
/
guix
Archived
1
0
Fork 0

gnu: librepcb: Update to 1.0.0.

* gnu/packages/engineering.scm (librepcb): Update to 1.0.0.
[source]: Add snippet to remove some vendored dependencies.
[build-system]: Use cmake-build-system.
[inputs]: Add fontconfig, fontobene-qt5, glu, hoedown, muparser,
opencascade-occt, clipper, qtdeclarative-5, qtquickcontrols2-5, quazip.
[native-inputs]: Add googletest, pkg-config.
[arguments]<#:configure-flags>: Add "-DUNBUNDLE_FONTOBENE_QT5=ON",
"-DUNBUNDLE_GTEST=ON", "-DUNBUNDLE_HOEDOWN=ON", "-DUNBUNDLE_MUPARSER=ON",
"-DUNBUNDLE_POLYCLIPPING=ON", "-DUNBUNDLE_QUAZIP=ON".
<#:phases>: Don't override the configure phase.  Override the check phase and
skip failing tests.
[license]: Remove licenses from unbundled dependencies.

Signed-off-by: Vinicius Monego <monego@posteo.net>
master
pinoaffe 2023-10-04 02:15:22 +02:00 committed by Vinicius Monego
parent ced91adcc0
commit 6d5a75c70e
No known key found for this signature in database
GPG Key ID: 637B0B138065B68A
1 changed files with 92 additions and 26 deletions

View File

@ -38,6 +38,7 @@
;;; Copyright © 2022, 2023 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2023 Theofilos Pechlivanis <theofilos.pechlivanis@gmail.com>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -123,7 +124,9 @@
#:use-module (gnu packages lisp)
#:use-module (gnu packages m4)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
@ -2322,33 +2325,101 @@ parallel computing platforms. It also supports serial execution.")
(define-public librepcb
(package
(name "librepcb")
(version "0.1.5")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.librepcb.org/releases/"
version "/librepcb-" version "-source.zip"))
(modules `((guix build utils)))
(snippet
;; Delete libraries that we already have or don't need.
;; TODO: try to unbundle more (see lib/).
`(begin
(let ((third-parties '("fontobene-qt5"
"googletest"
"hoedown"
"muparser"
"polyclipping"
"quazip")))
(with-directory-excursion "libs"
(map (lambda (third-party)
(delete-file-recursively third-party))
third-parties)))))
(sha256
(base32 "0smp1p7wnrj0vh4rmz1cr2krfawc2lzx0pbzmgyay7xdp6jxympr"))))
(build-system gnu-build-system)
(base32 "02qfwyhdq1pklb5gkwn3rbsdhwvcgiksd21swaphz3kw6s4p9i8v"))))
(build-system cmake-build-system)
(inputs
(list qtbase-5 qtsvg-5 zlib))
(list clipper
fontconfig
fontobene-qt5
glu
hoedown
muparser
opencascade-occt
qtbase-5
qtdeclarative-5
qtquickcontrols2-5
qtsvg-5
quazip
zlib))
(native-inputs
(list qttools-5 ; for lrelease
(list googletest
pkg-config
qttools-5
unzip))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(mkdir-p "build")
(chdir "build")
(let ((lrelease (search-input-file inputs "/bin/lrelease"))
(out (assoc-ref outputs "out")))
(invoke "qmake"
(string-append "QMAKE_LRELEASE=" lrelease)
(string-append "PREFIX=" out)
"../librepcb.pro")))))))
`(#:configure-flags (list
"-DUNBUNDLE_FONTOBENE_QT5=ON"
"-DUNBUNDLE_GTEST=ON"
"-DUNBUNDLE_HOEDOWN=ON"
"-DUNBUNDLE_MUPARSER=ON"
"-DUNBUNDLE_POLYCLIPPING=ON"
"-DUNBUNDLE_QUAZIP=ON")
#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(let ((test-include (list "*"))
(test-exclude
(list
;; These tests all fail when run by the build
;; process even though they pass when manually
;; run as a normal user.
;; TODO: verify that the failing tests don't
;; point to any actual underlying issues
"SystemInfoTest.testGetUsername"
"OrderPcbDialogTest.testAutoOpenBrowser"
"DxfImportDialogTest.testLayerName"
"DxfImportDialogTest.testCirclesAsDrills"
"DxfImportDialogTest.testJoinTangentPolylines"
"DxfImportDialogTest.testLineWidth"
"DxfImportDialogTest.testScaleFactor"
"DxfImportDialogTest.testPlacementPosition"
"GraphicsExportDialogTest.testPageSize"
"GraphicsExportDialogTest.testOrientation"
"GraphicsExportDialogTest.testMargins"
"GraphicsExportDialogTest.testShowPinNumbers"
"GraphicsExportDialogTest.testRotate"
"GraphicsExportDialogTest.testMirror"
"GraphicsExportDialogTest.testScale"
"GraphicsExportDialogTest.testPixmapDpi"
"GraphicsExportDialogTest.testBlackWhite"
"GraphicsExportDialogTest.testBackgroundColor"
"GraphicsExportDialogTest.testMinLineWidth"
"GraphicsExportDialogTest.testLayerColors"
"GraphicsExportDialogTest.testOpenExportedFiles"
"AddComponentDialogTest.testAddMore")))
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "QT_QUICK_BACKEND" "software")
(display "Running unittests...\n")
(invoke "./tests/unittests/librepcb-unittests"
(string-append
"--gtest_filter="
(string-join test-include ":")
"-"
(string-join test-exclude ":"))))))))))
(home-page "https://librepcb.org/")
(synopsis "Electronic Design Automation tool")
(description "LibrePCB is @dfn{Electronic Design Automation} (EDA)
@ -2356,17 +2427,12 @@ software to develop printed circuit boards. It features human readable file
formats and complete project management with library, schematic and board
editors.")
(license (list license:gpl3+
license:boost1.0 ; libs/clipper,
; libs/optional/tests/catch.hpp,
; libs/sexpresso/tests/catch.hpp
license:boost1.0 ; libs/optional/tests/catch.hpp,
license:expat ; libs/delaunay-triangulation,
; libs/parseagle, libs/type_safe
license:asl2.0 ; libs/fontobene, libs/googletest,
; libs/parseagle
license:isc ; libs/hoedown
license:cc0 ; libs/optional, libs/sexpresso
license:bsd-2 ; libs/optional/tests/catch.hpp
license:lgpl2.1+)))) ; libs/quazip
license:asl2.0 ; libs/parseagle
license:cc0 ; libs/optional
license:bsd-2)))) ; libs/optional/tests/catch.hpp
(define-public gpx
(package