File: OBUILD_SPEC.md

package info (click to toggle)
ocaml-obuild 0.1.10-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, buster
  • size: 808 kB
  • sloc: ml: 6,318; sh: 166; ansic: 34; makefile: 11
file content (81 lines) | stat: -rw-r--r-- 1,836 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# obuild file specification (DRAFT)

Here are the fields accepted in obuild files

The syntax is        field (flags): accepted_values

* field = string
* flags = M (mandatory)
* boolean = true | True | false | False
* accepted_values = comma separated string list | string list | string | boolean

# Section types

* executable
* library
* flag
* test
* bench
* example

# Toplevel fields

These fields are only accepted in the top level, i.e. not in target
sections, etc.

* name (M): string
* version (M): string
* obuild-ver (M): 1
* synopsis:
* description:
* licence | license: string: Licence for the project
* licence-file | license-file: string: Filename of the licence in the project directory
* homepage: string: URL of the homepage of the project
* tools: ?
* authors: string list CSV, Info about the authors, separated by commas
* author: string list: Info about the author
* extra-srcs: ?
* configure-script: ?

# Target fields

## Common fields

* buildable: boolean
* installable: boolean

## OCaml target fields

* builddepends | builddeps | build-deps: string list: ocamlfind library names
* path | srcdir | src-dir: string: sources directory
* preprocessor | pp: string: preprocessor to use
* extra-deps: comma-separated string list: ?
* stdlib: (none | no | standard | core): standard library to link ?

## C target fields

* cdir | c-dir:
* csources | c-sources:
* cflags | c-flags | ccopts | ccopt | c-opts:
* c-libpaths:
* c-libs:
* c-pkgs:

## Library only fields

* sub | subdir | library: NO VALUE (define a new block)
* per: NO VALUE (define a new block)
* modules:
* pack:
* syntax:
* description:

## Executable | Example | Test common fields

* per: NO VALUE (define a new block)
* main | mainis | main-is: string: ml file being the entry point for the executable

## Test only fields

* rundir:
* runopt: