From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: Build systems and implicit inputs Date: Tue, 21 Jan 2020 11:56:18 +0100 Message-ID: <87o8uxdqnh.fsf_-_@gnu.org> References: <8736ldq74z.fsf@netris.org> <20190719202906.lbanx5puk7t6q4cr@cf0> <87a7753boq.fsf@ambrevar.xyz> <87h813wah0.fsf@gnu.org> <87v9piut40.fsf@ambrevar.xyz> <87o8v5ukgb.fsf@ambrevar.xyz> <87d0blhr9s.fsf@ambrevar.xyz> <20200116190644.uytvzvypuvdwh2iq@n0> <871rry10ow.fsf@ambrevar.xyz> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:38759) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itrCo-00067P-LE for guix-devel@gnu.org; Tue, 21 Jan 2020 05:56:23 -0500 In-Reply-To: <871rry10ow.fsf@ambrevar.xyz> (Pierre Neidhardt's message of "Fri, 17 Jan 2020 17:56:31 +0100") 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-mx.org@gnu.org Sender: "Guix-devel" To: Pierre Neidhardt Cc: Guix Devel Hi! Pierre Neidhardt skribis: > But as I understand it, all the "configurable part" of the builder is > expose through the #:arguments field. A simple example of this is > python: the python-build-system has an argument which allows the package > to specify whether we use python-2 or python-3. > > In this case, it's trivial to use parameters to influence which compiler > the build system will use. > > For gnu-build-system (with gcc, clang, etc.) we can probably do similar > things already by setting CC. > > The solution to your problem in my opinion is simply to expose just the > right amount of options through #:arguments for all build systems. > Would that be satisfactory to you? I think the issue of tweaking the build system and its implicit inputs must be addressed separately. We first need a good API to do that. When we have it, it=E2=80=99ll be nice and easy to drive it via package parameters. :-) Currently each build system has ad-hoc keyword parameters to customize its implicit inputs: #:python for =E2=80=98python-build-system=E2=80=99, #:= cmake for =E2=80=98cmake-build-system=E2=80=99, #:implicit-inputs? for =E2=80=98gnu-b= uild-system=E2=80=99, etc. For each of them, it would be quite easy to provide a procedure that takes a list of implicit inputs and returns a . It may not be all that convenient, and perhaps a bit too ad-hoc still. Another option would be to make implicit inputs a field of . Needs more thought! Ludo=E2=80=99.