Yes: 1. is by far the best approach: it is typically quite easy (and simpler) to implement the required functionality in OCaml, and you get a build system that is fully self-contained and cross-platform.
See also [ANN] diskuvbox: small set of cross-platform CLI tools for inspiration.
Cheers,
Nicolas