Subject: [PATCH v5 1/3] gnu: Add asmjit.

From: Raghav Gururajan <[email-masked]>
Date: Thu, 9 Dec 2021 08:30:43 -0500

* gnu/packages/cpp.scm (asmjit): New variable.

Co-authored-by: jgart <[email-masked]>
Co-authored-by: Julien Lepiller <[email-masked]>
Co-authored-by: Disseminate Dissent <[email-masked]>
---
 gnu/packages/cpp.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 9ab6e0b835..bbcdcd6be9 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -18,6 +18,9 @@
 ;;; Copyright © 2020 Brett Gilio <[email-masked]>
 ;;; Copyright © 2020 Milkey Mouse <[email-masked]>
 ;;; Copyright © 2021 Raghav Gururajan <[email-masked]>
+;;; Copyright © 2021 jgart <[email-masked]>
+;;; Copyright © 2021 Julien Lepiller <[email-masked]>
+;;; Copyright © 2021 Disseminate Dissent <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +77,38 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public asmjit
+  (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
+        (revision "0"))
+    (package
+      (name "asmjit")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/asmjit/asmjit")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list
+          "-DASMJIT_TEST=TRUE")))
+      (home-page "https://asmjit.com/")
+      (synopsis "Machine code generation for C++")
+      (description "AsmJit is a lightweight library for machine code generation
+written in C++ language.  It can generate machine code for X86 and X86_64
+architectures with the support for the whole instruction set from legacy MMX to
+the newest AVX-512 and AMX.  It has a type-safe API that allows C++ compiler to
+do semantic checks at compile-time even before the assembled code is generated
+or executed.  It also provides an optional register allocator that makes it easy
+to generate complex code without a significant development effort.")
+      (license license:zlib))))
+
 (define-public range-v3
   (package
     (name "range-v3")
-- 
2.34.0