mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: Add openboardview.
* gnu/packages/electronics.scm (openboardview): New variable. * gnu/packages/patches/openboardview-use-system-utf8.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
parent
93c974d113
commit
32ccbc3a1e
3 changed files with 170 additions and 3 deletions
|
@ -1582,6 +1582,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/onnx-shared-libraries.patch \
|
||||
%D%/packages/patches/onnx-skip-model-downloads.patch \
|
||||
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
|
||||
%D%/packages/patches/openboardview-use-system-utf8.patch \
|
||||
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
|
||||
%D%/packages/patches/openfoam-4.1-cleanup.patch \
|
||||
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -21,11 +22,12 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages electronics)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (gnu packages)
|
||||
|
@ -34,11 +36,14 @@ (define-module (gnu packages electronics)
|
|||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages embedded)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages gtk)
|
||||
|
@ -48,7 +53,10 @@ (define-module (gnu packages electronics)
|
|||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages qt))
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages stb))
|
||||
|
||||
(define-public libserialport
|
||||
(package
|
||||
|
@ -240,6 +248,116 @@ (define-public sigrok-cli
|
|||
(description "Sigrok-cli is a command-line frontend for sigrok.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public openboardview
|
||||
(package
|
||||
(name "openboardview")
|
||||
(version "8.95.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/OpenBoardView/OpenBoardView")
|
||||
(commit version)
|
||||
(recursive? #t))) ;for the "src/imgui" submodule
|
||||
(file-name (git-file-name name version))
|
||||
(modules '((ice-9 ftw)
|
||||
(srfi srfi-26)
|
||||
(guix build utils)))
|
||||
(snippet
|
||||
'(with-directory-excursion "src"
|
||||
;; Keep the bundled ImGui for now, as in the current version
|
||||
;; (~1.79), it requires the glad loader generated at build
|
||||
;; time as an input.
|
||||
(define keep (list "." ".." "imgui" "openboardview"))
|
||||
(for-each (lambda (f)
|
||||
(when (eq? 'directory (stat:type (lstat f)))
|
||||
(delete-file-recursively f)))
|
||||
(scandir "." (negate (cut member <> keep))))))
|
||||
(patches
|
||||
(search-patches "openboardview-use-system-utf8.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"16mrs7bimwp8a8lb2wqhfisy6j0hl9574l4h9yb66v46aglvmd3h"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ;no test suite
|
||||
#:imported-modules `((guix build glib-or-gtk-build-system)
|
||||
,@%cmake-build-system-modules)
|
||||
#:modules '((guix build cmake-build-system)
|
||||
(guix build utils)
|
||||
((guix build glib-or-gtk-build-system) #:prefix gtk:))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'remove-timestamps
|
||||
(lambda _
|
||||
;; The __TIMESTAMP__ CPP macro does apparently not honor
|
||||
;; SOURCE_EPOCH_DATE. Patch it to use __DATE__ instead, which
|
||||
;; does (see:
|
||||
;; https://github.com/OpenBoardView/OpenBoardView/issues/229 and
|
||||
;; https://issues.guix.gnu.org/53647).
|
||||
(substitute* '("src/openboardview/BoardView.cpp"
|
||||
"src/openboardview/main_opengl.cpp")
|
||||
(("__TIMESTAMP__")
|
||||
"__DATE__"))))
|
||||
(add-before 'configure 'configure-glad
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "src/CMakeLists.txt"
|
||||
(("add_subdirectory\\(glad\\)")
|
||||
(string-append
|
||||
;; Configure Glad to use static Khronos XML specifications
|
||||
;; instead of attempting to fetch them from the Internet.
|
||||
"option(GLAD_REPRODUCIBLE \"Reproducible build\" ON)\n"
|
||||
;; Use the CMake files from our glad package.
|
||||
"add_subdirectory("
|
||||
(search-input-directory inputs "share/glad") ;source_dir
|
||||
" src/glad)\n"))))) ;binary dir
|
||||
(add-before 'configure 'fix-utf8-include-directive
|
||||
;; Our utf8-h package makes the header available as "utf8.h"
|
||||
;; directly rather than "utf8/utf8.h".
|
||||
(lambda _
|
||||
(substitute* '("src/openboardview/FileFormats/BRDFile.cpp"
|
||||
"src/openboardview/BoardView.cpp")
|
||||
(("utf8/utf8.h") "utf8.h"))))
|
||||
(add-before 'configure 'dynamically-load-gtk-via-absolute-path
|
||||
;; The GTK library is not linked thus not present in the RUNPATH of
|
||||
;; the produced binary; the absolute path of the libraries must to
|
||||
;; the dynamic loader otherwise they aren't found.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "src/openboardview/unix.cpp"
|
||||
(("libgtk-3.so")
|
||||
(search-input-file inputs "lib/libgtk-3.so")))))
|
||||
;; Add the two extra phases from `glib-or-gtk-build-system'.
|
||||
(add-after 'install 'glib-or-gtk-compile-schemas
|
||||
(assoc-ref gtk:%standard-phases 'glib-or-gtk-compile-schemas))
|
||||
(add-after 'install 'glib-or-gtk-wrap
|
||||
(assoc-ref gtk:%standard-phases 'glib-or-gtk-wrap)))))
|
||||
(native-inputs
|
||||
(list pkg-config
|
||||
python
|
||||
glad
|
||||
stb-image
|
||||
utf8-h))
|
||||
(inputs
|
||||
(list fontconfig
|
||||
gtk+
|
||||
sdl2
|
||||
sqlite
|
||||
zlib))
|
||||
(home-page "https://openboardview.org/")
|
||||
(synopsis "Viewer for BoardView files")
|
||||
(description "OpenBoardView is a viewer for BoardView files, which present
|
||||
the details of a printed circuit board (PCB). It comes with features
|
||||
such as:
|
||||
@itemize
|
||||
@item Dynamic part outline rendering, including complex connectors
|
||||
@item Annotations, for leaving notes about parts, nets, pins or location
|
||||
@item Configurable colour themes
|
||||
@item Configurable DPI to facilitate usage on 4K monitors
|
||||
@item Configurable for running on slower systems
|
||||
@item Reads FZ (with key), BRD, BRD2, BDV and BV* formats.
|
||||
@end itemize")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public pulseview
|
||||
(package
|
||||
(name "pulseview")
|
||||
|
|
48
gnu/packages/patches/openboardview-use-system-utf8.patch
Normal file
48
gnu/packages/patches/openboardview-use-system-utf8.patch
Normal file
|
@ -0,0 +1,48 @@
|
|||
From 251e23422f37c93a3f460fb660c5e5bfa8200d91 Mon Sep 17 00:00:00 2001
|
||||
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
Date: Sun, 2 Dec 2018 16:40:39 -0500
|
||||
Subject: [PATCH] build system: Allow using utf8.h from the system.
|
||||
|
||||
---
|
||||
src/CMakeLists.txt | 12 ++++++++----
|
||||
src/openboardview/CMakeLists.txt | 1 +
|
||||
2 files changed, 9 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 90442ed..26d4a69 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -8,10 +8,14 @@ if(NOT WIN32 OR MINGW)
|
||||
endif()
|
||||
|
||||
## utf8.h ##
|
||||
-execute_process(
|
||||
- COMMAND git submodule update --init src/utf8
|
||||
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
-)
|
||||
+FIND_PATH(UTF8_INCLUDE_DIR utf8.h)
|
||||
+if(NOT UTF8_INCLUDE_DIR)
|
||||
+ execute_process(
|
||||
+ COMMAND git submodule update --init src/utf8
|
||||
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
+ )
|
||||
+ set(UTF8_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/utf8)
|
||||
+endif()
|
||||
|
||||
## zlib ##
|
||||
find_package(ZLIB)
|
||||
diff --git a/src/openboardview/CMakeLists.txt b/src/openboardview/CMakeLists.txt
|
||||
index b0bdbe3..6c4564c 100644
|
||||
--- a/src/openboardview/CMakeLists.txt
|
||||
+++ b/src/openboardview/CMakeLists.txt
|
||||
@@ -44,6 +44,7 @@ include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||
${IMGUI_INCLUDE_DIRS}
|
||||
+ ${UTF8_INCLUDE_DIR}
|
||||
${GLAD_INCLUDE_DIRS}
|
||||
${GTK_INCLUDE_DIRS}
|
||||
${OPENGL_INCLUDE_DIR}
|
||||
--
|
||||
2.34.0
|
||||
|
Loading…
Reference in a new issue