Un file _tags
in aggiunta a myocamlbuild.ml
costituisce la radice del sistema di compilazione ocamlbuild
.
ocamlbuild
è uno strumento molto generico, in grado di compilare qualsiasi cosa. È guidato da un risolutore che, in base all'obiettivo impostato da un utente, trova una soluzione in grado di soddisfare l'obiettivo. La soluzione è una catena di regole applicate ai file. I file possono essere taggati per tag. I tag possono alterare le regole. Ad esempio, può aggiungere contrassegni, come abilitare la profilazione o il collegamento a una libreria.
Un file _tags
fornisce un meccanismo per assegnare tag ai file e ha una semplice grammatica:
pattern ":" tag "," {tag}.
Qual è a sinistra del :
è in realtà un motivo o l'espressione regolare. Ad ogni file che corrisponde all'espressione verranno assegnati tutti i tag che si trovano a destra di :
.
<**/*>
significa per tutti i file in questa cartella e tutte le sottocartelle, esiste una scorciatoia per questo: true
. <*>
significa per tutti i file su questa cartella (senza discendere nelle sottocartelle). Altri esempi sono <*.ml>
, <*.cmx>
o <**/*.cma>
(btw or
può anche essere utilizzato per creare un modello).
OCamlbuild è documentato in OCaml Manual, c'è anche un dump della vecchia wiki, con molte informazioni.
Ma la parte divertente è che di solito non è necessario sapere questo per poter utilizzare OCaml. C'è uno strumento OASIS
che automatizza tutte le attività e crea il file _tags
per te da una definizione semplice e di alto livello.