From 7e9a2b92b9bcf948b8c286a1269f6c2bd42a00eb Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Thu, 13 Jun 2019 00:13:27 +0200 Subject: [PATCH 1/2] gnu: Add scintilla. * gnu/packages/text-editors.scm (scintilla): New variable. --- gnu/packages/text-editors.scm | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 534934dfd1..16f867184d 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Efraim Flashner +;;; Copyright © 2019 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -389,3 +390,65 @@ projects. The EditorConfig project maintains a file format and plugins for various text editors which allow this file format to be read and used by those editors.") (license license:bsd-2))) + +(define-public scintilla + (package + (name "scintilla") + (version "4.1.5") + (source (origin + (method url-fetch) + (uri (let ((v (apply string-append (string-split version #\.)))) + (string-append + "https://www.scintilla.org/scintilla" v ".tgz"))) + (sha256 + (base32 + "1c24hfrl0wzb8674bjjql5105nlp6h31gj7axjaf7akkf8yisyab")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk") + #:tests? #f ;require un-packaged Pyside + #:phases + (modify-phases %standard-phases + (delete 'configure) ;no configure script + (add-after 'unpack 'build-shared-library + (lambda _ + (substitute* "gtk/makefile" + (("scintilla\\.a") "libscintilla.so") + (("\\$\\(AR\\) \\$\\(ARFLAGS\\) \\$@ \\$\\^") + "$(CC) -shared $^ -o $@") + (("\\$\\(RANLIB\\) \\$@") "")) + #t)) + (add-before 'build 'expand-C++-include-path + (lambda* (#:key inputs #:allow-other-keys) + ;; Make /include/c++/ext/string_conversions.h find + ;; . + (let* ((path "CPLUS_INCLUDE_PATH") + (gcc (assoc-ref inputs "gcc")) + (c++ (string-append gcc "/include/c++"))) + (setenv path (string-append c++ ":" (getenv path)))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (include (string-append out "/include"))) + (install-file "bin/libscintilla.so" lib) + (for-each (lambda (f) (install-file f include)) + (find-files "include/" ".")) + #t)))))) + (native-inputs + `(("gcc" ,gcc-7) ;require GCC 7.1+ + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+))) + (home-page "https://www.scintilla.org/") + (synopsis "Code editor for GTK+") + (description "Scintilla is a source code editing component for +GTK+. It has the usual features found in text editing components, as +well as some that are especially useful for editing and debugging +source code; these include support for syntax styling, error +indicators, code completion and call tips. Styling choices are more +open than with many editors: Scintilla lets you use proportional +fonts, bold and italics, multiple foreground and background colours, +and multiple fonts.") + (license license:isc))) -- 2.22.0