unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Fis Trivial <ybbs.daans@hotmail.com>
To: guix-devel <guix-devel@gnu.org>
Subject: Dealing with language bindings for libraries.
Date: Wed, 9 May 2018 15:21:11 +0000	[thread overview]
Message-ID: <BLUPR16MB0500ED8F304DAA009814837992990@BLUPR16MB0500.namprd16.prod.outlook.com> (raw)


Hi, Guixs.

Recently I encountered some libraries that's written in c++ and have
multiple language bindings, each of them has their corresponding build
system, namely, R, Python, Java. And all the bindings are in
tree. During the build process, One would first build the c++ part by
cmake, then chdir into each language binding sub-directory and invoke
its build system.

For packaging them in guix, one way to deal with it is building each
binding as an independent package, each package has it's own
dependencies for the specific binding and common dependencies for C++
part, that way, we will have N independent packages, for N language
binding. But it will result in a huge waste of computing resource. I
don't want to waste precious computing time of guix's build farm.

Another way to deal with it is supply all dependencies for all language
bindings in one package, and then define the build code manually in
%standard-phases. But this method comes in two disadvantages. First, we
need to re-implement these build process already implemented in (guix
build-system) over and over again. For second, those dependencies are
burden to users, since no one would actually need all language bindings,
they pick the one that's needed.

An ideal scenario would be the one that we can specify multiple outputs
for one packages, each output corresponds to one language binding, and
we can specify different dependencies and build system for each
output. Is there any chance we can do that in guix?

Thanks.

             reply	other threads:[~2018-05-09 15:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-09 15:21 Fis Trivial [this message]
2018-05-09 16:25 ` Dealing with language bindings for libraries Konrad Hinsen
2018-05-09 18:00   ` Julien Lepiller
2018-05-11  5:49     ` Konrad Hinsen
2018-05-09 18:45 ` Ricardo Wurmus
2018-05-09 19:33   ` Fis Trivial
2018-05-09 20:08     ` Ricardo Wurmus
2018-05-10  5:02       ` Fis Trivial
2018-05-10  8:18 ` Catonano
2018-05-10  9:27   ` Fis Trivial
2018-05-10 15:08     ` Catonano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BLUPR16MB0500ED8F304DAA009814837992990@BLUPR16MB0500.namprd16.prod.outlook.com \
    --to=ybbs.daans@hotmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).