From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Subject: [PATCH] gnu: Add ninja. Date: Fri, 9 Jan 2015 21:40:17 +0800 Message-ID: <1420810817-23613-1-git-send-email-iyzsong@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41511) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9Znj-00054e-9G for guix-devel@gnu.org; Fri, 09 Jan 2015 08:40:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y9Zne-0007qd-4j for guix-devel@gnu.org; Fri, 09 Jan 2015 08:40:31 -0500 Received: from mail-pa0-x22d.google.com ([2607:f8b0:400e:c03::22d]:49454) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9Znd-0007qV-Q5 for guix-devel@gnu.org; Fri, 09 Jan 2015 08:40:26 -0500 Received: by mail-pa0-f45.google.com with SMTP id lf10so18610319pab.4 for ; Fri, 09 Jan 2015 05:40:24 -0800 (PST) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org * gnu/packages/ninja.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/ninja.scm | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 gnu/packages/ninja.scm diff --git a/gnu-system.am b/gnu-system.am index 33d870c..acea574 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -191,6 +191,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/ncurses.scm \ gnu/packages/netpbm.scm \ gnu/packages/nettle.scm \ + gnu/packages/ninja.scm \ gnu/packages/node.scm \ gnu/packages/noweb.scm \ gnu/packages/ntp.scm \ diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm new file mode 100644 index 0000000..8939750 --- /dev/null +++ b/gnu/packages/ninja.scm @@ -0,0 +1,82 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Sou Bunnbu +;;; +;;; 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 . + +(define-module (gnu packages ninja) + #:use-module ((guix licenses) #:select (asl2.0)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages python)) + +(define-public ninja + (package + (name "ninja") + (version "1.5.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/martine/ninja/" + "archive/v" version ".tar.gz")) + (sha256 + (base32 + "1h3yfwcfl61v493vna6jia2fizh8rpig7qw2504cvkr6gid3p5bw")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (alist-replace + 'configure + (lambda _ + (substitute* "src/subprocess-posix.cc" + (("/bin/sh") (which "sh")))) + (alist-replace + 'build + (lambda _ + (zero? (system "./configure.py --bootstrap"))) + (alist-replace + 'check + (lambda _ + (and (zero? (system "./configure.py")) + (zero? (system "./ninja ninja_test")) + ;; SubprocessTest.InterruptChild fail when using 'system*'. + ;; SubprocessTest.SetWithLots was skipped. + ;; XXX: Raise [ulimit -n] well above 1025 to make this test go. + (zero? (system (string-append + "./ninja_test " + "--gtest_filter=" + "-SubprocessTest.SetWithLots"))))) + (alist-replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/ninja"))) + (mkdir-p bin) + (copy-file "ninja" (string-append bin "/ninja")) + (mkdir-p doc) + (copy-file "doc/manual.asciidoc" + (string-append doc "/manual.asciidoc")))) + %standard-phases)))))) + (native-inputs `(("python" ,python-2))) + (home-page "http://martine.github.io/ninja/") + (synopsis "Small build system") + (description + "Ninja is a small build system with a focus on speed. It differs from +other build systems in two major respects: it is designed to have its input +files generated by a higher-level build system, and it is designed to run +builds as fast as possible.") + (license asl2.0))) -- 2.1.2