Package: guix-patches;
Reported by: Ashvith Shetty <ashvithshetty10 <at> gmail.com>
Date: Tue, 6 Aug 2024 11:03:01 UTC
Severity: normal
Tags: patch
View this message in rfc822 format
From: Adam Faiz <adam.faiz <at> disroot.org> To: 72494 <at> debbugs.gnu.org Cc: Ashvith Shetty <ashvithshetty10 <at> gmail.com> Subject: [bug#72494] [PATCH v4] gnu: Add c3c-bootstrap. Date: Sun, 11 Aug 2024 22:57:52 +0800
From 8b6035ad6587d44a9d65575b0f307820e42a402e Mon Sep 17 00:00:00 2001 Message-ID: <8b6035ad6587d44a9d65575b0f307820e42a402e.1723388041.git.adam.faiz <at> disroot.org> From: AwesomeAdam54321 <adam.faiz <at> disroot.org> Date: Wed, 7 Aug 2024 12:18:23 +0800 Subject: [PATCH v4] gnu: Add c3c-bootstrap. This patch was co-authored with Ashvith Shetty. * gnu/packages/c3.scm: New file. * gnu/packages/c3.scm (c3c-bootstrap): New variable. --- gnu/packages/c3.scm | 94 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 gnu/packages/c3.scm diff --git a/gnu/packages/c3.scm b/gnu/packages/c3.scm new file mode 100644 index 0000000000..d179a30356 --- /dev/null +++ b/gnu/packages/c3.scm @@ -0,0 +1,94 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10 <at> gmail.com> +;;; Copyright © 2024 Adam Faiz <adam.faiz <at> disroot.org> +;;; +;;; 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 c3) + #:use-module (gnu packages compression) + #:use-module (gnu packages libffi) + #:use-module (gnu packages llvm) + #:use-module (gnu packages python) + #:use-module (guix build-system cmake) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define-public c3c-bootstrap + (package + (name "c3c") + (version "0.6.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/c3lang/c3c") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xjl3yghyqmqv9118nhcix3xywlpdirqc0dlmdaghdkja0wr19rw")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Unbundle miniz. + (delete-file-recursively "dependencies") + ;; Swap out miniz for zlib. + (substitute* "CMakeLists.txt" + (("add_library\\(miniz.*\\)\n$") + "find_package(ZLIB REQUIRED)\n") + (("target_include_directories\\(miniz PUBLIC") "") + (("...*/dependencies/miniz/..") "") + (("miniz") "z")) + (substitute* "src/utils/unzipper.c" + (("miniz\\.h") "zlib.h")))))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + #~(list "-DCMAKE_INSTALL_LIBDIR=lib") + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'fix-build + (lambda _ + (substitute* "CMakeLists.txt" + (("\\$\\{LLVM_LIBRARY_DIRS\\}") + (string-append #$lld-18 "/lib/ " + #$llvm-18 "/lib/"))) + (substitute* '("src/compiler/target.c" + "src/compiler/linker.c") + (("\"cc\"") (string-append "\"" #$(cc-for-target) "\""))) + (substitute* "resources/testproject/project.json" + (("\"cc\" : \"cc\",") "")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "../source/resources/testproject" + (invoke "../../../build/c3c" "build")) + (invoke "python3" "../source/test/src/tester.py" + "./c3c" "../source/test/test_suite") + (invoke "./c3c" "compile-test" "../source/test/unit"))))))) + (native-inputs (list python)) + (inputs (list libffi lld-18 llvm-18 zlib)) + (synopsis "Compiler for the C3 language") + (description + "C3 is a programming language that builds on the syntax and semantics +of the C language, with the goal of evolving it while still retaining +familiarity for C programmers.") + (home-page "https://c3-lang.org/") + (supported-systems '("x86_64-linux" "aarch64-linux" "riscv64-linux")) + (license (list license:lgpl3 license:expat)))) base-commit: b20956651a53a8f23828fdeb6945e1a31e6997a8 -- 2.41.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.