gnu: Add stb-image.
* gnu/packages/stb.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Register it.
This commit is contained in:
		
							parent
							
								
									0bc2724800
								
							
						
					
					
						commit
						cada868c2a
					
				
					 2 changed files with 98 additions and 0 deletions
				
			
		|  | @ -403,6 +403,7 @@ GNU_SYSTEM_MODULES =				\ | |||
|   %D%/packages/sssd.scm				\
 | ||||
|   %D%/packages/stalonetray.scm			\
 | ||||
|   %D%/packages/statistics.scm			\
 | ||||
|   %D%/packages/stb.scm				\
 | ||||
|   %D%/packages/storage.scm			\
 | ||||
|   %D%/packages/suckless.scm			\
 | ||||
|   %D%/packages/swig.scm				\
 | ||||
|  |  | |||
							
								
								
									
										97
									
								
								gnu/packages/stb.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								gnu/packages/stb.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,97 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
| ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||||
| ;;; under the terms of the GNU General Public License as published by | ||||
| ;;; the Free Software Foundation; either version 3 of the License, or (at | ||||
| ;;; your option) any later version. | ||||
| ;;; | ||||
| ;;; GNU Guix is distributed in the hope that it will be useful, but | ||||
| ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| ;;; GNU General Public License for more details. | ||||
| ;;; | ||||
| ;;; You should have received a copy of the GNU General Public License | ||||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu packages stb) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix git-download) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix build-system trivial) | ||||
|   #:use-module ((guix licenses) #:select (expat public-domain))) | ||||
| 
 | ||||
| (define stb | ||||
|   ;; stb is a collection of libraries developed within the same repository. | ||||
|   ;; When updating this, remember to change versions below as appropriate. | ||||
|   (let ((commit "e6afb9cbae4064da8c3e69af3ff5c4629579c1d2") | ||||
|         (revision "0")) | ||||
|     (package | ||||
|       (name "stb") | ||||
|       (home-page "https://github.com/nothings/stb") | ||||
|       (version (git-version "0.0" revision commit)) | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url home-page) | ||||
|                       (commit commit))) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "079nsn9bnb8c0vfq26g5l53q6gzx19a5x9q2nb55mpcljxsgxnmf")) | ||||
|                 (file-name (git-file-name name version)))) | ||||
|       (build-system gnu-build-system) | ||||
|       (arguments | ||||
|        `(#:modules ((ice-9 ftw) | ||||
|                     (ice-9 regex) | ||||
|                     (srfi srfi-26) | ||||
|                     ,@%gnu-build-system-modules) | ||||
|          #:phases (modify-phases %standard-phases | ||||
|                     (delete 'configure) | ||||
|                     (delete 'build) | ||||
|                     (replace 'check | ||||
|                       (lambda _ | ||||
|                         (invoke "make" "-C" "tests" "CC=gcc"))) | ||||
|                     (replace 'install | ||||
|                       (lambda* (#:key outputs #:allow-other-keys) | ||||
|                         (let ((out (assoc-ref outputs "out")) | ||||
|                               (files (make-regexp "\\.(c|h|md)$"))) | ||||
|                           (for-each (lambda (file) | ||||
|                                       (install-file file out)) | ||||
|                                     (scandir "." (cut regexp-exec files <>))) | ||||
|                           #t)))))) | ||||
|       (synopsis "Single file libraries for C/C++") | ||||
|       (description | ||||
|        "This package contains a variety of small independent libraries for | ||||
| the C programming language.") | ||||
|       ;; The user can choose either license. | ||||
|       (license (list expat public-domain))))) | ||||
| 
 | ||||
| (define (make-stb-header-package name version description) | ||||
|   (package | ||||
|     (inherit stb) | ||||
|     (name name) | ||||
|     (version version) | ||||
|     (source #f) | ||||
|     (inputs `(("stb" ,stb))) | ||||
|     (build-system trivial-build-system) | ||||
|     (arguments | ||||
|      `(#:modules ((guix build utils)) | ||||
|        #:builder (begin | ||||
|                    (use-modules (guix build utils)) | ||||
|                    (let ((stb (assoc-ref %build-inputs "stb")) | ||||
|                          (lib (string-join (string-split ,name #\-) "_")) | ||||
|                          (out (assoc-ref %outputs "out"))) | ||||
|                      (install-file (string-append stb "/" lib ".h") | ||||
|                                    (string-append out "/include")) | ||||
|                      #t)))) | ||||
|     (description description))) | ||||
| 
 | ||||
| ;; TODO: These descriptions are not translatable!  They should be | ||||
| ;; converted to macros as outlined in <https://bugs.gnu.org/32155>. | ||||
| (define-public stb-image | ||||
|   (make-stb-header-package | ||||
|    "stb-image" "2.19" | ||||
|    "stb-image is a small and self-contained library for image loading or | ||||
| decoding from file or memory.  A variety of formats are supported.")) | ||||
		Reference in a new issue