From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: C++/cmake project, injecting Ada...
Date: Thu, 28 Apr 2011 18:34:08 +0200
Date: 2011-04-28T18:34:08+02:00 [thread overview]
Message-ID: <87liyugwsf.fsf@ludovic-brenta.org> (raw)
In-Reply-To: ipbo47$ctd$1@dont-email.me
"Alex R. Mosteo" <alejandro@mosteo.invalid> writes:
> As I was writing this reply, I realized that focusing in a particular
> case at hand may provide better food for though and more precise
> solutions. So I have renamed the thread accordingly. Now, the scenario
> is like this:
>
> A fairly conventional open source project for doing some high-level
> simulations. C++ based, using cmake for building. Developers using an
> assortment of linux OSses: Ubuntu 10.04, 10.10, Fedora (last 2 or 3
> versions). Eventually, MacOSX could enter the fray. Remember, this is
> loosely cooperative research, nobody mandates the devel platform to a
> particularly tight version.
>
> The project uses several libraries: boost, YARP, opencv, etc, which
> are located by cmake. Somehow all this compiles in such varied
> environments.
>
> Now, let's suppose the contributions are fairly self-contained (e.g.,
> providing a particular class instance for an abstract base class). I
> know how to interface Ada and C/C++, don't mind to write glue code as
> needed, etc.
>
> The challenge: throwing Ada into this mix without disrupting
> everyone's workflow to an unreasonable level. The obstacles that I
> see, and for which your ideas are most welcome:
My first reaction is: don't do it. The chances of failure are very
high, if only because of the diversity of platforms and the absence of a
"stock" Ada compiler on each. The integration between Ada and cmake is
another potential hurdle. Any failure will be promptly blamed on "your
non-standard language and tools" even though cmake is just as
"non-standard" as gprbuild; you'll end up being the only person in
charge of debugging everyone else's build problems.
It should be possible, however, to create separate add-ons in Ada.
Compile these add-ons independently from the main project, using
gnatmake or gprmake; do not require any developer not interested in your
add-ons to change anything to their toolchain. The interfacing between
the add-ons and the main project is the crux of the matter; if you could
do it via some sort of interprocess communications, you would be able to
isolate your add-ons from the main project very well. Otherwise,
provide a shared library that the main project can dlopen() and call
(use pragma Export to expose the API to the shared library).
A last resort perhaps: fork the open source project; do anything you
like in Ada, replace cmake with gprbuild or whatever. Merge from the
open source project from time to time. Care only about your platform;
if anyone is interested in building on another, provide assistance as
needed. Publish your sources in a separate branch in their version
control system if you can (and if the VCS supports merges well, i.e. it
is not CVS or subversion...) or in a monotone database if you must.
--
Ludovic Brenta.
next prev parent reply other threads:[~2011-04-28 16:34 UTC|newest]
Thread overview: 168+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-20 10:39 If not Ada, what else Alex R. Mosteo
2011-04-20 10:51 ` Ludovic Brenta
2011-04-21 8:47 ` Alex R. Mosteo
2011-04-20 11:53 ` Maciej Sobczak
2011-04-21 8:46 ` Alex R. Mosteo
2011-04-23 2:08 ` Peter C. Chapin
2011-04-21 17:19 ` Robert Matthews
2011-04-21 19:02 ` Georg Bauhaus
2011-04-21 19:25 ` Florian Weimer
2011-04-22 15:50 ` Robert Matthews
2011-04-22 17:49 ` Brad Cantrell
2011-04-23 2:20 ` Peter C. Chapin
2011-04-23 9:55 ` Georg Bauhaus
2011-04-23 11:17 ` Peter C. Chapin
2011-04-22 21:39 ` Florian Weimer
2011-04-23 2:26 ` Peter C. Chapin
2011-04-23 9:52 ` björn lundin
2011-04-23 11:50 ` Piotr Trojanek
2011-04-23 12:23 ` Dmitry A. Kazakov
2011-04-23 14:30 ` Georg Bauhaus
2011-04-23 15:04 ` Dmitry A. Kazakov
2011-04-23 16:16 ` Piotr Trojanek
2011-04-28 12:55 ` C++/cmake project, injecting Ada... (was Re: If not Ada, what else...) Alex R. Mosteo
2011-04-28 16:34 ` Ludovic Brenta [this message]
2011-04-29 8:17 ` C++/cmake project, injecting Ada Alex R. Mosteo
2011-04-29 12:45 ` stefan-lucks
2015-07-02 10:44 ` Alejandro R. Mosteo
2011-05-28 17:33 ` C++/cmake project, injecting Ada... (was Re: If not Ada, what else...) Dirk Heinrichs
2015-07-03 19:21 ` If not Ada, what else luvhed
2015-07-03 20:50 ` Paul Rubin
2015-07-04 8:19 ` Rod Kay
2015-07-08 18:11 ` jm.tarrasa
2015-07-08 20:33 ` Anh Vo
2015-07-09 6:36 ` jm.tarrasa
2015-07-08 22:15 ` David Botton
2015-07-09 7:28 ` jm.tarrasa
2015-07-09 9:54 ` G.B.
2015-07-09 12:57 ` Dennis Lee Bieber
2015-07-09 18:25 ` David Botton
2015-07-09 21:15 ` Bob Duff
2015-07-09 22:23 ` David Botton
2015-07-09 22:39 ` Paul Rubin
2015-07-10 0:20 ` David Botton
2015-07-10 4:26 ` Paul Rubin
2015-07-10 15:01 ` David Botton
2015-07-10 16:07 ` David Botton
2015-07-10 17:39 ` Bob Duff
2015-07-10 18:22 ` Paul Rubin
2015-07-10 19:10 ` David Botton
2015-07-10 19:43 ` Patrick Noffke
2015-07-11 10:46 ` Brian Drummond
2015-07-11 10:59 ` Björn Lundin
2015-07-11 13:41 ` Georg Bauhaus
2015-07-11 14:11 ` Björn Lundin
2015-07-13 14:02 ` Patrick Noffke
2015-07-13 14:16 ` David Botton
2015-07-13 14:54 ` Maciej Sobczak
2015-07-16 20:19 ` Serge Robyns
2015-07-17 1:50 ` David Botton
2015-07-17 17:07 ` Anh Vo
2015-07-17 21:28 ` Serge Robyns
2015-07-17 22:53 ` Anh Vo
2015-07-19 14:31 ` David Botton
2015-07-19 16:20 ` Paul Rubin
2015-07-19 20:55 ` Jeffrey R. Carter
2015-07-19 21:15 ` Paul Rubin
2015-07-20 16:08 ` Tero Koskinen
2015-07-20 17:31 ` Paul Rubin
2015-07-21 1:16 ` Dennis Lee Bieber
2015-07-21 3:09 ` Shark8
2015-07-21 12:46 ` Dennis Lee Bieber
2015-07-21 5:43 ` J-P. Rosen
2015-07-21 12:47 ` Dennis Lee Bieber
2015-07-21 12:55 ` J-P. Rosen
2015-07-19 22:38 ` David Botton
2015-07-21 6:30 ` Gour
2015-07-21 16:24 ` David Botton
2015-07-21 17:29 ` Niklas Holsti
2015-07-21 18:51 ` Simon Wright
2015-07-21 19:36 ` David Botton
2015-07-22 8:44 ` Pascal Obry
2015-07-22 12:00 ` Jean François Martinez
2015-07-27 22:59 ` Randy Brukardt
2015-07-28 7:00 ` Georg Bauhaus
2015-07-28 7:22 ` Paul Rubin
2015-07-28 10:36 ` darkestkhan
2015-07-28 10:58 ` G.B.
2015-07-28 20:33 ` Randy Brukardt
2015-07-28 10:40 ` darkestkhan
2015-07-29 7:30 ` Jacob Sparre Andersen
2015-07-29 8:55 ` Simon Wright
2015-07-29 12:38 ` EGarrulo
2015-07-29 13:06 ` EGarrulo
2015-07-29 15:41 ` Paul Rubin
2015-07-29 17:01 ` Björn Lundin
2015-07-29 18:27 ` Paul Rubin
2015-07-29 18:52 ` Björn Lundin
2015-07-29 22:18 ` Paul Rubin
2015-07-30 6:23 ` Dmitry A. Kazakov
2015-07-30 16:48 ` David Botton
2015-07-30 18:10 ` Randy Brukardt
2015-07-29 19:18 ` Georg Bauhaus
2015-07-29 19:42 ` Randy Brukardt
2015-07-30 4:54 ` Paul Rubin
2015-07-30 6:15 ` Niklas Holsti
2015-07-30 6:34 ` Dmitry A. Kazakov
2015-07-30 6:47 ` Paul Rubin
2015-07-30 7:20 ` Dmitry A. Kazakov
2015-07-30 23:13 ` Paul Rubin
2015-07-29 17:07 ` Stefan.Lucks
2015-07-29 17:47 ` Paul Rubin
2015-08-21 23:03 ` Waldek Hebisch
2015-08-22 3:24 ` Paul Rubin
2015-08-23 16:26 ` Waldek Hebisch
2015-08-23 17:18 ` Jeffrey R. Carter
2015-08-23 17:31 ` Waldek Hebisch
2015-08-23 19:32 ` Jeffrey R. Carter
2015-08-23 23:01 ` Waldek Hebisch
2015-07-29 19:32 ` Georg Bauhaus
2015-07-30 5:17 ` Paul Rubin
2015-07-30 7:38 ` Georg Bauhaus
2015-07-30 18:26 ` Paul Rubin
2015-07-30 18:37 ` Paul Rubin
2015-07-31 7:14 ` Georg Bauhaus
2015-07-30 10:59 ` darkestkhan
2015-08-19 22:19 ` rriehle
2015-08-19 22:58 ` Anh Vo
2015-08-19 23:32 ` rriehle
2015-08-20 1:08 ` Peter Chapin
2015-08-21 15:14 ` Anh Vo
2015-08-21 16:07 ` Anh Vo
2015-08-21 17:17 ` Patrick Noffke
2015-07-21 19:51 ` Dmitry A. Kazakov
2015-07-21 21:06 ` Simon Wright
2015-07-21 21:51 ` Dmitry A. Kazakov
2015-07-21 22:55 ` Jeffrey R. Carter
2015-07-22 7:26 ` Dmitry A. Kazakov
2015-07-22 9:05 ` Mart van de Wege
2015-07-22 10:27 ` Dmitry A. Kazakov
2015-07-22 7:01 ` Simon Wright
2015-07-22 7:35 ` Dmitry A. Kazakov
2015-07-27 23:02 ` Randy Brukardt
2015-07-27 22:44 ` Randy Brukardt
2015-07-28 7:30 ` Simon Wright
2015-07-28 20:39 ` Randy Brukardt
2015-07-29 7:12 ` Simon Wright
2015-07-29 11:11 ` vincent.diemunsch
2015-07-29 19:31 ` Randy Brukardt
2015-07-22 12:53 ` Vincent
2015-07-22 13:59 ` Dmitry A. Kazakov
2015-07-21 20:05 ` J-P. Rosen
2015-07-21 21:02 ` Simon Wright
2015-07-21 23:40 ` Shark8
2015-07-22 12:58 ` vincent.diemunsch
2015-07-22 13:40 ` J-P. Rosen
2015-07-22 14:29 ` Vincent
2015-07-21 19:30 ` David Botton
[not found] ` <30336c64-ceaa-4887-adee-18cc58aef012@googlegroups.com>
2015-08-21 5:21 ` Shark8
2015-08-21 17:39 ` David Botton
2015-07-11 2:31 ` Paul Rubin
2015-07-11 6:00 ` J-P. Rosen
2015-07-11 7:51 ` Georg Bauhaus
2015-07-11 8:47 ` Dmitry A. Kazakov
2015-07-21 1:34 ` Luke A. Guest
2015-07-27 9:09 ` Assertions in SPARK (Was: If not Ada, what else...) Jacob Sparre Andersen
2015-07-27 10:56 ` G.B.
2015-07-27 21:59 ` Peter Chapin
2015-07-11 11:10 ` If not Ada, what else Pascal Obry
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox