[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/13: gnu: Add GN.
From: |
Marius Bakke |
Subject: |
03/13: gnu: Add GN. |
Date: |
Mon, 22 Oct 2018 17:02:52 -0400 (EDT) |
mbakke pushed a commit to branch master
in repository guix.
commit 3ad0a35890ea3142e0ac16a8be6addd1693a10a1
Author: Marius Bakke <address@hidden>
Date: Wed Sep 12 13:45:34 2018 +0200
gnu: Add GN.
* gnu/packages/build-tools.scm (gn): New public variable.
---
gnu/packages/build-tools.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 4fc2d5a..42de56f 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <address@hidden>
;;; Copyright © 2018 Fis Trivial <address@hidden>
;;; Copyright © 2018 Tomáš Čech <address@hidden>
+;;; Copyright © 2018 Marius Bakke <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -98,6 +99,63 @@ it is easy to re-run the compilation with alternate
programs. Bear is used to
generate such a compilation database.")
(license license:gpl3+)))
+(define-public gn
+ (let ((commit "f73698ebb33e26a0bf120e2b55d12528fd1dbe7d")
+ (revision "1481")) ;as returned by `git describe`, used below
+ (package
+ (name "gn")
+ (version (git-version "0.0" revision commit))
+ (home-page "https://gn.googlesource.com/gn")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page) (commit commit)))
+ (sha256
+ (base32
+ "078ydwak4424bkqh3hd7q955zxp2c3qlw44lsb29i8jqap140f9d"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;FIXME: How to run?
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'set-build-environment
+ (lambda _
+ (setenv "CC" "gcc") (setenv "CXX" "g++")
+ (setenv "AR" "ar")
+ #t))
+ (replace 'configure
+ (lambda _
+ (invoke "python" "build/gen.py" "--no-sysroot"
+ "--no-last-commit-position")))
+ (add-after 'configure 'create-last-commit-position
+ (lambda _
+ ;; Create "last_commit_position.h" to avoid a
dependency
+ ;; on 'git' (and the checkout..).
+ (call-with-output-file "out/last_commit_position.h"
+ (lambda (port)
+ (format port
+ "#define LAST_COMMIT_POSITION \"~a
(~a)\"\n"
+ ,revision ,(string-take commit 8))
+ #t))))
+ (replace 'build
+ (lambda _
+ (invoke "ninja" "-C" "out" "gn"
+ "-j" (number->string (parallel-job-count)))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "out/gn" (string-append out "/bin"))
+ #t))))))
+ (native-inputs
+ `(("ninja" ,ninja)
+ ("python" ,python-2)))
+ (synopsis "Generate Ninja build files")
+ (description
+ "GN is a tool that collects information about a project from @file{.gn}
+files and generates build instructions for the Ninja build system.")
+ ;; GN is distributed as BSD-3, but bundles some files from ICU using the
+ ;; X11 license.
+ (license (list license:bsd-3 license:x11)))))
+
(define-public meson
(package
(name "meson")
- branch master updated (9861bcd -> 63abd1e), Marius Bakke, 2018/10/22
- 02/13: gnu: python-lazy-object-proxy: Update to 1.3.1., Marius Bakke, 2018/10/22
- 03/13: gnu: Add GN.,
Marius Bakke <=
- 01/13: gnu: python-mistune: Update to 0.8.4., Marius Bakke, 2018/10/22
- 04/13: gnu: samba: Update to 4.8.6., Marius Bakke, 2018/10/22
- 05/13: gnu: libmd: Update to 1.0.1., Marius Bakke, 2018/10/22
- 09/13: gnu: python-m2crypto: Update to 0.30.1., Marius Bakke, 2018/10/22
- 11/13: gnu: python-markdown: Update to 3.0.1., Marius Bakke, 2018/10/22
- 07/13: gnu: xorg-server: Update to 1.20.2., Marius Bakke, 2018/10/22
- 10/13: gnu: python-markdown: Update home page., Marius Bakke, 2018/10/22
- 08/13: gnu: python-m2crypto: python-typing is only needed for python2., Marius Bakke, 2018/10/22
- 06/13: gnu: xf86-input-libinput: Update to 0.28.1., Marius Bakke, 2018/10/22
- 13/13: gnu: python-pymongo: Update to 3.7.2., Marius Bakke, 2018/10/22