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: Ashvith Shetty <ashvithshetty10 <at> gmail.com> To: 72494 <at> debbugs.gnu.org Cc: adam.faiz <at> disroot.org Subject: [bug#72494] [PATCH v3] gnu: Add c3c-bootstrap. Date: Sat, 10 Aug 2024 17:59:04 +0000
Hi Adam, I've tried building from your patch, and it seems to me that the compiler isn't working, and requires that the flag `-cc` be passed, pointing to `gcc` or `clang`. Since `cc` is a symlink to `gcc`, wouldn't it be better to substitute `cc` to `gcc`? Or is it possible to create a symlink `cc` unique to, and isolated inside the package expression? On Wed, Aug 7, 2024 at 6:37 AM Adam Faiz <adam.faiz <at> disroot.org> wrote: > > From 3f9768c8fe5cc965170a74e5c018887793cb3ac0 Mon Sep 17 00:00:00 2001 > Message-ID: <3f9768c8fe5cc965170a74e5c018887793cb3ac0.1723012269.git.adam.faiz <at> disroot.org> > From: AwesomeAdam54321 <adam.faiz <at> disroot.org> > Date: Wed, 7 Aug 2024 12:18:23 +0800 > Subject: [PATCH v3] 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 | 92 +++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 92 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..2c5924807f > --- /dev/null > +++ b/gnu/packages/c3.scm > @@ -0,0 +1,92 @@ > +;;; 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 curl) > + #: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)") > + (("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/"))))) > + (replace 'check > + (lambda* (#:key tests? #:allow-other-keys) > + (when tests? > + (with-directory-excursion "../source/resources/testproject" > + (invoke "../../../build/c3c" > + "--cc" #$(cc-for-target) "build")) > + (invoke "python3" "../source/test/src/tester.py" > + "./c3c" "../source/test/test_suite") > + (invoke "./c3c" "--cc" #$(cc-for-target) > + "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.