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. > ). 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