Mars
Mars

Reputation: 8854

How to add -thread to _oasis to compile with Core

I've been using oasis to build my project using some external packages. Now I also want to use Jane Street's Core package. However, in order to compile with Core, you have to pass the -thread flag to ocamlfind, e.g. like this:

ocamlfind ocamlc -linkpkg -thread -package core foo.ml -o foo

How can I tell oasis to add the -thread flag? Right now, my _oasis file includes something like the following:

Executable "foo"
  BuildDepends: core,batteries,bar
  Path: src
  MainIs: foo.ml
  CompiledObject: best

Bar a collection of my own utilities from the same project. When I run oasis setup and make, I get this error:

ocamlfind: Error from package `threads': Missing -thread or -vmthread switch

I looked at the Oasis manual, and neither the common fields for all sections of the _oasis file, nor the fields that are specific to the Excutable section seem to be appropriate for adding a command line flag for ocamlfind.

I thought that this answer might be relevant, but when I tried adding the extra keys it suggested, with -thread as the value for XOCamlbuildExtraArgs, I got an error:

E: Field XOCamlbuildExtraArgs is not defined in schema Executable

Upvotes: 1

Views: 176

Answers (1)

ivg
ivg

Reputation: 35210

You need to add the following line to your _tags file:

<**/*>: thread

There will be a bunch of stuff between the OASIS_START and OASIS_STOP delimiters, don't add anything between them, but rather before or after.

Upvotes: 4

Related Questions