Package definition
This module contains all the types used to build an OASIS package. A package is described by an '_oasis' file.
Standard name.
Standard URL.
UNIX directory name.
UNIX file name.
Host directory name.
Host file name.
Program.
Command line argument.
Package name for findlib, doesn't contain '.'.
Package name + path for findlib, made of several findlib name concatenated with '.'.
(* | External findlib package. | *) | |
(* | Section library of the given name. | *) |
Package dependency.
Plugin kind.
Additional data to allow registration of more than one data property per plugin. See OASISPlugin.data_new_property
Plugin definition, plugin type depends on which fields this types is used for.
Property list storage for plugin data
#
pre_command
| : command_line option conditional | ; | (* | Run before. | *) |
#
post_command
| : command_line option conditional | ; | (* | Run after. | *) |
Set of command lines to run before and after a step.
#
bs_build
| : bool conditional | ; | (* | Build this section. | *) |
#
bs_install
| : bool conditional | ; | (* | Install this section. | *) |
#
bs_path
| : unix_dirname | ; | (* | Top level location of the sources. | *) |
#
bs_compiled_object
| : compiled_object | ; | (* | What kind of compilation. | *) |
#
bs_build_depends
| : dependency list | ; | (* | List of dependencies. | *) |
#
bs_build_tools
| : tool list | ; | (* | List of build tools. | *) |
#
bs_c_sources
| : unix_filename list | ; | (* | C sources, relative to bs_path . | *) |
#
bs_data_files
| : (unix_filename * unix_filename option) list | ; | (* | Data files and their install location, relative to bs_path . | *) |
#
bs_ccopt
| : args conditional | ; | (* | Options for -ccopt. | *) |
#
bs_cclib
| : args conditional | ; | (* | Options for -cclib. | *) |
#
bs_dlllib
| : args conditional | ; | (* | Options for -dllib. | *) |
#
bs_dllpath
| : args conditional | ; | (* | Options for -dllpath. | *) |
#
bs_byteopt
| : args conditional | ; | (* | Option to pass to ocamlc. | *) |
#
bs_nativeopt
| : args conditional | ; | (* | Option to pass to ocamlopt. | *) |
Common attributes for Executable and Library sections.
#
lib_modules
| : string list | ; | (* | List of modules exported by the library. | *) |
#
lib_pack
| : bool | ; | (* | Are we building a packed library? | *) |
#
lib_internal_modules
| : string list | ; | (* | List of modules not-exported by the library, but compiled along. | *) |
#
lib_findlib_parent
| : findlib_name option | ; | (* | Name of the findlib parent, if any. | *) |
#
lib_findlib_name
| : findlib_name option | ; | (* | Findlib name of this library, this name is used to refer to this library in build dependencies. | *) |
#
lib_findlib_containers
| : findlib_name list | ; | (* | Name of virtual containers (empty findlib package) between findlib parent and findlib name | *) |
Library definition.
#
obj_modules
| : string list | ; | |||
#
obj_findlib_fullname
| : findlib_name list option | ; | (* | Findlib name of this library, this name is used to refer to this library in build dependencies. | *) |
Object definition.
#
exec_custom
| : bool | ; | (* | Use -custom ocamlc option. | *) |
#
exec_main_is
| : unix_filename | ; | (* | Main file to compile, dependencies should be guessed by build system. | *) |
Executable definition.
#
flag_description
| : string option | ; | (* | Short description. | *) |
#
flag_default
| : bool conditional | ; | (* | Default value. | *) |
Command line flag definition.
#
src_repo_type
| : vcs | ; | (* | Repository type. | *) |
#
src_repo_location
| : url | ; | (* | Where to fetch the source, using appropriate VCS tool. | *) |
#
src_repo_browser
| : url option | ; | (* | Where to browse the source, using web browser. | *) |
#
src_repo_module
| : string option | ; | (* | Depending on VCS, which module (e.g. CVS). | *) |
#
src_repo_branch
| : string option | ; | (* | Depending on VCS, which branch (e.g. git). | *) |
#
src_repo_tag
| : string option | ; | (* | Depending on VCS, which tag (e.g. tag for darcs, git or svn). | *) |
#
src_repo_subdir
| : unix_filename option | ; | (* | Depending on VCS, which sub directory (e.g. svn). | *) |
Source repository definition.
#
test_type
| : [ | `Test ] plugin | ; | (* | Plugin to run the test, default custom. | *) |
#
test_command
| : command_line conditional | ; | (* | Command to run the test, may depend on the plugin meaning. | *) |
#
test_custom
| : custom | ; | (* | Custom command lines to run before and after. | *) |
#
test_working_directory
| : unix_filename option | ; | (* | Which working directorty to chdir in. | *) |
#
test_run
| : bool conditional | ; | (* | Should we run the test. | *) |
#
test_tools
| : tool list | ; | (* | Tools required for this test. | *) |
Test definition.
#
doc_type
| : [ | `Doc ] plugin | ; | (* | Plugin to build this document, default none. | *) |
#
doc_custom
| : custom | ; | (* | Custom command lines ommand to before and after. | *) |
#
doc_build
| : bool conditional | ; | (* | Build this document. | *) |
#
doc_install
| : bool conditional | ; | (* | Install this document. | *) |
#
doc_install_dir
| : unix_filename | ; | (* | Where to install this document. | *) |
#
doc_title
| : string | ; | (* | What is the title of this document. | *) |
#
doc_authors
| : string list | ; | (* | Who are the authors of this document. | *) |
#
doc_abstract
| : string option | ; | (* | Abstract of this document. | *) |
#
doc_format
| : doc_format | ; | (* | Format of this document. | *) |
#
doc_data_files
| : (unix_filename * unix_filename option) list | ; | (* | All data files and where they should be install, by default to doc_install_dir | *) |
#
doc_build_tools
| : tool list | ; | (* | Tools required to generate this document. | *) |
Document definition.
All sections and their attributes.
#
oasis_version
| : OASISVersion.t | ; | (* | OASIS version used to write this package. | *) |
#
ocaml_version
| : OASISVersion.comparator option | ; | (* | OCaml version required for this package. | *) |
#
findlib_version
| : OASISVersion.comparator option | ; | (* | Findlib version required for this package. | *) |
#
alpha_features
| : string list | ; | (* | Alpha features enabled for this package. | *) |
#
beta_features
| : string list | ; | (* | Beta features enabled for this package. | *) |
#
name
| : package_name | ; | (* | Name of this package. | *) |
#
version
| : OASISVersion.t | ; | (* | Version of this package. | *) |
#
license
| : OASISLicense.t | ; | (* | License of this package. | *) |
#
license_file
| : unix_filename option | ; | (* | File containing the license of this package. | *) |
#
copyrights
| : string list | ; | (* | Copyright holders (e.g. companies or people). | *) |
#
maintainers
| : string list | ; | (* | People actually taking care of this package (e.g. subset of copyright holders) | *) |
#
authors
| : string list | ; | (* | Real people who wrote this package, not their companies. | *) |
#
homepage
| : url option | ; | (* | Location of the package homepage. | *) |
#
synopsis
| : string | ; | (* | Short description of the package. | *) |
#
description
| : OASISText.t option | ; | (* | Long description of the package. | *) |
#
categories
| : url list | ; | (* | List of categories that the package belong to. | *) |
#
conf_type
| : [ | `Configure ] plugin | ; | (* | Plugin to configure, default internal. | *) |
#
conf_custom
| : custom | ; | (* | Actions around configure step. | *) |
#
build_type
| : [ | `Build ] plugin | ; | (* | Plugin to build, default ocamlbuild. | *) |
#
build_custom
| : custom | ; | (* | Actions around build step. | *) |
#
install_type
| : [ | `Install ] plugin | ; | (* | Plugin to install/uninstall, default internal. | *) |
#
install_custom
| : custom | ; | (* | Actions around install step. | *) |
#
uninstall_custom
| : custom | ; | (* | Actions around uninstall step. | *) |
#
clean_custom
| : custom | ; | (* | Actions around clean step. | *) |
#
distclean_custom
| : custom | ; | (* | Actions aroudn distclean step. | *) |
#
files_ab
| : unix_filename list | ; | (* | Files to generate by replacing token in it after configure step. | *) |
#
sections
| : section list | ; | (* | All sections (libraries, executables, tests...). | *) |
#
plugins
| : [ | `Extra ] plugin list | ; | (* | Extra plugins applied. | *) |
#
disable_oasis_section
| : unix_filename list | ; | (* | Files which should not have OASIS Section comments and digests | *) |
#
schema_data
| : PropList.Data.t | ; | |||
#
plugin_data
| : plugin_data | ; | (* | Property list attached to this package. | *) |
OASIS package, what an '_oasis' file contains.
These functions allow to generate setup.ml standalone code, by serializing OCaml data using OCaml notation. They are not exported.