Please consider adding more comments to the following bug, which seems close to what you are discussing:
https://forge.ocamlcore.org/tracker/index.php?func=detail&aid=1473&group_id=54&atid=291

I must admit that I totally miss the whole point of the discussion, probably if you can make a summary of what you precisely need in the BTS, I will be able to understand the problem better.

Regards
Sylvain

Le mer. 23 sept. 2015 à 11:44, Magnus Therning <magnus@therning.org> a écrit :
On Wed, Sep 23, 2015 at 11:19:57AM +0200, Gabriel Scherer wrote:
> > Indeed, the goal is to not contaminate the source directory *at all*.
>
> You could, in the "external build" command passed to CMake, wrap the
> build invocation with code to create the symlinks before the build,
> and remove them after the build.

Yes, CMake lets me do pretty much anything, but it does make the build a
little more complex and I'm already sneaking in OCaml without telling ;)

> That said, If I understand oasis' philosophy correctly (but I'm far
> from an expert), the file that are generated by the oasis setup are
> not to be understood as "generated files never to be looked at", but
> rather *source* files that you may want to modify and customize
> yourself, and just contain some snippets produced by oasis. I would
> understand this as a kind of "we created the basic boilerplate
> structure of your project for you", rather than "those are hidden
> files only used during the build". In particular, you may be expected
> to include these files in your version-control repository (something I
> have been a bit reluctant to do myself; I think that the newish
> "dynamic" setup mode of oasis avoids versioning any cruft).

Yes, I am aware of that, and with "dynamic" mode `oasis` seems to
generate little enough that I wouldn't mind putting it in VCS.

> > Since the steps work on "simple"
> > code, but doesn't on code using `camlp4` I'm leaning towards calling
> > this a bug.
>
> I'll let oasis developers triage this issue, but it is not as clear as
> you describe. It's not that this oasis setup works in simple cases and
> breaks in other, but rather than oasis does not support this setup at
> all, yet sometimes ocamlbuild can do what it needs without any help
> whatsoever.

I tend to land in the camp of "if the behaviour is surprising (without
delighting) to a user, then it's a bug".  I'm fully aware that what I'm
trying to do might not have been a scenario the `oasis` devs ever
considered.

> <src/...>). But I like the idea and created a feature request to track
> it:
>   http://caml.inria.fr/mantis/view.php?id=6997

Thanks, I'll keep an eye on that request.

> But if you go this route, it means that you would have to wait for the
> next ocamlbuild release, so an oasis-level solution or workaround
> would currently be more helpful for you.

For the time being I get by with using `ocamlbuild` (via `corebuild`)
and its `-build-dir` option.  Hopefully there'll be more support for
out-of-source building when I get to the point of replacing all C code
with OCaml ;)

/M

--
Magnus Therning                      OpenPGP: 0xAB4DFBA4
email: magnus@therning.org   jabber: magnus@therning.org
twitter: magthe               http://therning.org/magnus

You do not examine legislation in the light of the benefits it will
convey if properly administered, but in the light of the wrongs it
would do and the harms it would cause if improperly administered.
     -- Lyndon Johnson