diff --git a/jbuilder.opam b/jbuilder.opam index 2d4dcba2..d8e25cfb 100644 --- a/jbuilder.opam +++ b/jbuilder.opam @@ -1,5 +1,4 @@ opam-version: "1.2" -version: "1.0+beta8" maintainer: "opensource@janestreet.com" authors: ["Jane Street Group, LLC "] homepage: "https://github.com/janestreet/jbuilder" diff --git a/pkg/pkg.ml b/pkg/pkg.ml new file mode 100644 index 00000000..f850838f --- /dev/null +++ b/pkg/pkg.ml @@ -0,0 +1,8 @@ +#!/usr/bin/env ocaml +#use "./topkg-jbuilder" + +let () = + Pkg.describe "jbuilder" + ~readmes: [ Pkg.std_file "README.org" ] + ~change_logs:[ Pkg.std_file "CHANGES.org" ] + ~licenses: [ Pkg.std_file "LICENSE.txt" ] diff --git a/topkg-jbuilder b/topkg-jbuilder new file mode 100644 index 00000000..7c4e1494 --- /dev/null +++ b/topkg-jbuilder @@ -0,0 +1,57 @@ +(* -*- tuareg -*- *) +#use "topfind" +#require "topkg" + +open Topkg + +module Pkg = struct + include Pkg + + let build + ?(cmd=fun c os _files -> + let jbuilder = Conf.tool "jbuilder" os in + OS.Cmd.run @@ Cmd.(jbuilder % "build" % "-p" % Conf.pkg_name c)) + ?(clean=fun os ~build_dir -> + let rm = Conf.tool "rm" os in + let find = Conf.tool "find" os in + OS.Cmd.run @@ Cmd.(rm % "-rf" % build_dir) >>= fun () -> + OS.Cmd.run @@ Cmd.(find % "." % "-name" % ".merlin" % "-delete")) + = + Pkg.build ~cmd ~clean + + let opam_files () = + Sys.readdir "." + |> Array.to_list + |> List.filter (String.is_suffix ~affix:".opam") + |> List.map (Pkg.opam_file ~lint_deps_excluding:None) + + let describe + ?delegate + ?readmes + ?licenses + ?change_logs + ?(metas=[]) + ?(opams=opam_files ()) + ?lint_files + ?lint_custom + ?distrib + ?publish + ?(build=build ()) + name + = + describe + ?delegate + ?readmes + ?licenses + ?change_logs + ~metas + ~opams + ?lint_files + ?lint_custom + ?distrib + ?publish + ~build + name + @@ fun c -> + Ok [ (*Pkg.test "jbuilder" ~auto:false ~args:Cmd.(empty % "runtest" % "-p" % Conf.pkg_name c)*) ] +end