On Wednesday, 16 January 2013 at 12:00:54 UTC, Jacob Carlborg wrote:

Thanks for your prompt response.

[cut]
You usually place it in a common directory. You then use the -I switch to make the compiler aware of this directory.
Let me play with some scenario: I've a library 'acme' release 1.0 and two client C1 and C2.

* scenario 1: acme in common directory
+ acme
  ...
+ C1
  ...
+ C2
  ...

So, in C1
$dms -I../acme *.d

and in C2
$dms -I../acme *.d

suppose that C2 need a new feature from acme library, so I modify and
recompile acme sources and I get the new acme rel. 2.0.
But C1 still uses the old release 1.0, and if I recompile C1 it is linked to new new acme rel. 2.0...

* scenario 2: acme in subdirectory
If I include acme as subdirectory like this:

+ C1
  ...
  + acme
+ C2
  ...
  + acme

I resolve the problem on scenario 1. (C1 uses rel. 1.0 and C2 rel. 2.0) but if I fix a bug in acme, I should update C1, C2 and all other clients that use acme.

What do you think? what is your way of working?


Ideally this should be handled by a package manager and a build tool.
which package manager do you suggest? (of course orbit :) ), and which build tool (I use rake)?

Thank you very much

Reply via email to