[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#51838] [PATCH v6 24/41] gnu: Add node-addon-api.
From: |
Philip McGrath |
Subject: |
[bug#51838] [PATCH v6 24/41] gnu: Add node-addon-api. |
Date: |
Thu, 30 Dec 2021 02:39:02 -0500 |
* gnu/packages/node-xyz.scm (node-addon-api): New variable.
---
gnu/packages/node-xyz.scm | 87 +++++++++++++++++++++++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index 4eda001dc4..656642eb43 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -22,6 +22,9 @@
(define-module (gnu packages node-xyz)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages python)
+ #:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system node))
@@ -642,3 +645,87 @@ (define-public node-nan
This project also contains some helper utilities that make addon development a
bit more pleasant.")
(license license:expat)))
+
+(define-public node-addon-api
+ (package
+ (name "node-addon-api")
+ (version "4.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nodejs/node-addon-api")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1bhvfi2m9nxfz418s619914vmidcnrzbjv6l9nid476c3zlpazch"))))
+ (inputs
+ (list python node-safe-buffer))
+ (build-system node-build-system)
+ (arguments
+ `(#:modules
+ ((guix build node-build-system)
+ (srfi srfi-1)
+ (ice-9 match)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'patch-dependencies 'delete-dependencies
+ (lambda args
+ (with-atomic-json-file-replacement "package.json"
+ (lambda (pkg-meta)
+ (delete-dependencies pkg-meta
+ `("benchmark"
+ "bindings"
+ "clang-format"
+ "eslint"
+ "eslint-config-semistandard"
+ "eslint-config-standard"
+ "eslint-plugin-import"
+ "eslint-plugin-node"
+ "eslint-plugin-promise"
+ "fs-extra"
+ "path"
+ "pre-commit"))))))
+ (add-after 'unpack 'skip-js-tests
+ ;; We can't run the js-based tests,
+ ;; but we can still do the C++ parts
+ (lambda args
+ (define new-test-script
+ "echo stopping after pretest on Guix")
+ (with-atomic-json-file-replacement "package.json"
+ (match-lambda
+ (('@ . pkg-meta-alist)
+ (cons
+ '@
+ (map (match-lambda
+ (("scripts" '@ . scripts-alist)
+ `("scripts" @ ,@(map (match-lambda
+ (("test" . _)
+ (cons "test"
+ new-test-script))
+ (other
+ other))
+ scripts-alist)))
+ (other
+ other))
+ pkg-meta-alist))))))))))
+ (home-page "https://github.com/nodejs/node-addon-api")
+ (synopsis "Node.js API (Node-API) header-only C++ wrappers")
+ (description "This module contains header-only C++ wrapper classes which
+simplify the use of the C based Node-API provided by Node.js when using C++.
+It provides a C++ object model and exception handling semantics with low
+overhead.
+
+Node-API is an ABI stable C interface provided by Node.js for building native
+addons. It is intended to insulate native addons from changes in the
+underlying JavaScript engine and allow modules compiled for one version to run
+on later versions of Node.js without recompilation. The @code{node-addon-api}
+module, which is not part of Node.js, preserves the benefits of the Node-API
+as it consists only of inline code that depends only on the stable API
+provided by Node-API.
+
+It is important to remember that @emph{other} Node.js interfaces such as
+@code{libuv} (included in a project via @code{#include <uv.h>}) are not
+ABI-stable across Node.js major versions.")
+ (license license:expat)))
--
2.32.0
- [bug#51838] [PATCH v6 10/41] gnu: node-llparse-builder-bootstrap: Use 'delete-dependencies'., (continued)
- [bug#51838] [PATCH v6 10/41] gnu: node-llparse-builder-bootstrap: Use 'delete-dependencies'., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 12/41] gnu: node-llparse-bootstrap: Use 'delete-dependencies'., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 14/41] gnu: node-wrappy: Use 'delete-dependencies'., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 15/41] gnu: node-once: Use 'delete-dependencies'., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 16/41] gnu: node-irc-colors: Use 'delete-dependencies'., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 17/41] gnu: node-irc: Use 'delete-dependencies'., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 18/41] gnu: Add node-inherits., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 19/41] gnu: Add node-safe-buffer., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 21/41] gnu: Add node-readable-stream., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 20/41] gnu: Add node-string-decoder., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 24/41] gnu: Add node-addon-api.,
Philip McGrath <=
- [bug#51838] [PATCH v6 23/41] gnu: Add node-openzwave-shared., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 25/41] gnu: Add node-sqlite3., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 26/41] gnu: Add node-file-uri-to-path., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 22/41] gnu: Add node-nan., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 32/41] gnu: Add node-serialport-parser-delimiter., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 27/41] gnu: Add node-bindings., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 31/41] gnu: Add node-serialport-binding-abstract., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 28/41] gnu: Add node-segfault-handler., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 29/41] gnu: Add node-ms., Philip McGrath, 2021/12/30
- [bug#51838] [PATCH v6 30/41] gnu: Add node-debug., Philip McGrath, 2021/12/30