X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/8cbb67e04509f0854762269e46a65ee4344388f7..698a34482af6833c334aca8b5f4d1f82f7564ffa:/gnu/packages/fltk.scm?ds=sidebyside diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index 6aee41d31f..f09b383ef1 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -1,5 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington +;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2015, 2018 Ricardo Wurmus +;;; Copyright © 2016 Kei Kebreau +;;; Copyright © 2018 Mark H Weaver +;;; Copyright © 2018 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,39 +22,72 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages fltk) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:select (lgpl2.0 lgpl2.0+)) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages image) #:use-module (gnu packages xorg) #:use-module (gnu packages gl) + #:use-module (gnu packages gtk) ;for "cairo" + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system waf) + #:use-module (srfi srfi-1)) (define-public fltk (package (name "fltk") - (version "1.3.2") + (version "1.3.5") (source (origin (method url-fetch) - (uri (string-append "http://fltk.org/pub/fltk/" version + (uri (string-append "http://fltk.org/pub/fltk/" + (first (string-split version #\-)) "/fltk-" version "-source.tar.gz")) (sha256 (base32 - "1974brlk723095vf8z72kazq1cbqr9a51kq6b0xda6zkjkgl8q0p")))) + "00jp24z1818k9n6nn6lx7qflqf2k13g4kxr0p8v1d37kanhb4ac7")))) (build-system gnu-build-system) - (inputs - `(("libx11" ,libx11) - ("mesa" ,mesa))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libx11" ,libx11) + ("libxft" ,libxft) + ("mesa" ,mesa) + ("zlib" ,zlib))) (arguments `(#:tests? #f ;TODO: compile programs in "test" dir - #:configure-flags '("--enable-shared") + #:configure-flags + (list "--enable-shared" + (string-append "DSOFLAGS=-Wl,-rpath=" %output "/lib")) #:phases - (alist-cons-before - 'configure 'patch-makeinclude - (lambda _ - (substitute* "makeinclude.in" - (("/bin/sh") (which "sh")))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'patch-makeinclude + (lambda _ + (substitute* "makeinclude.in" + (("/bin/sh") (which "sh"))) + #t)) + (add-after 'install 'patch-config + ;; Provide -L flags for image libraries when querying fltk-config to + ;; avoid propagating inputs. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((conf (string-append (assoc-ref outputs "out") + "/bin/fltk-config")) + (jpeg (assoc-ref inputs "libjpeg")) + (png (assoc-ref inputs "libpng")) + (zlib (assoc-ref inputs "zlib"))) + (substitute* conf + (("-ljpeg") (string-append "-L" jpeg "/lib -ljpeg")) + (("-lpng") (string-append "-L" png "/lib -lpng")) + (("-lz") (string-append "-L" zlib "/lib -lz")))) + #t))))) (home-page "http://www.fltk.org") (synopsis "3D C++ GUI library") (description "FLTK is a C++ GUI toolkit providing modern GUI functionality @@ -58,3 +96,54 @@ emulation. FLTK is designed to be small and modular enough to be statically linked, but works fine as a shared library. FLTK also includes an excellent UI builder called FLUID that can be used to create applications in minutes.") (license lgpl2.0))) ; plus certain additional permissions + +(define-public ntk + (package + (name "ntk") + (version "1.3.1000") + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.tuxfamily.org/gitroot/non/fltk.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0j38mhnfqy6swcrnc5zxcwlqi8b1pgklyghxk6qs1lf4japv2zc0")) + (file-name (git-file-name name version)))) + (build-system waf-build-system) + (arguments + `(#:tests? #f ;no "check" target + #:configure-flags '("--enable-gl") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'setup-waf + (lambda* (#:key inputs #:allow-other-keys) + (let ((waf (assoc-ref inputs "waf"))) + (delete-file "waf") + (copy-file (string-append waf "/bin/waf") "waf")) + #t)) + (add-before 'configure 'set-ldflags + (lambda* (#:key outputs #:allow-other-keys) + (setenv "LDFLAGS" + (string-append "-Wl,-rpath=" + (assoc-ref outputs "out") "/lib")) + #t))))) + (inputs + `(("libjpeg" ,libjpeg) + ("glu" ,glu) + ("waf" ,python-waf))) + ;; ntk.pc lists "x11" and "xft" in Requires.private, and "cairo" in + ;; Requires. + (propagated-inputs + `(("cairo" ,cairo) + ("libxft" ,libxft) + ("libx11" ,libx11))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://non.tuxfamily.org/ntk/") + (synopsis "Fork of FLTK with graphics rendering via Cairo") + (description "The Non Tool Kit (NTK) is a fork of the Fast Light ToolKit +library, adding improved graphics rendering via Cairo, a streamlined and +enhanced widget set, and other features designed to improve the appearance and +performance of the Non applications.") + (license lgpl2.0+))) ; plus certain additional permissions