`sig
type name = string
type package_name = string
type url = string
type unix_dirname = string
type unix_filename = string
type host_dirname = string
type host_filename = string
type prog = string
type arg = string
type args = OASISTypes.arg list
type command_line = OASISTypes.prog * OASISTypes.args
type findlib_name = string
type findlib_full = string
type compiled_object = Byte | Native | Best
type dependency =
FindlibPackage of OASISTypes.findlib_full *
OASISVersion.comparator option
| InternalLibrary of OASISTypes.name
type tool =
ExternalTool of OASISTypes.name
| InternalExecutable of OASISTypes.name
type vcs =
Darcs
| Git
| Svn
| Cvs
| Hg
| Bzr
| Arch
| Monotone
| OtherVCS of OASISTypes.url
type 'a conditional = 'a OASISExpr.choices
type plugin_kind =
[ `Build | `Configure | `Doc | `Extra | `Install | `Test ]
type plugin_data_purpose =
[ `Build
| `Clean
| `Configure
| `Distclean
| `Doc
| `Extra
| `Install
| `Other of string
| `Test
| `Uninstall ]
type 'a plugin = 'a * OASISTypes.name * OASISVersion.t option
type all_plugin = OASISTypes.plugin_kind OASISTypes.plugin
type plugin_data =
(OASISTypes.all_plugin * OASISTypes.plugin_data_purpose *
(unit -> unit))
list
type custom = {
pre_command : OASISTypes.command_line option OASISTypes.conditional;
post_command : OASISTypes.command_line option OASISTypes.conditional;
}
type common_section = {
cs_name : OASISTypes.name;
cs_data : PropList.Data.t;
cs_plugin_data : OASISTypes.plugin_data;
}
type build_section = {
bs_build : bool OASISTypes.conditional;
bs_install : bool OASISTypes.conditional;
bs_path : OASISTypes.unix_dirname;
bs_compiled_object : OASISTypes.compiled_object;
bs_build_depends : OASISTypes.dependency list;
bs_build_tools : OASISTypes.tool list;
bs_interface_patterns : OASISSourcePatterns.t list;
bs_implementation_patterns : OASISSourcePatterns.t list;
bs_c_sources : OASISTypes.unix_filename list;
bs_data_files :
(OASISTypes.unix_filename * OASISTypes.unix_filename option) list;
bs_findlib_extra_files : OASISTypes.unix_filename list;
bs_ccopt : OASISTypes.args OASISTypes.conditional;
bs_cclib : OASISTypes.args OASISTypes.conditional;
bs_dlllib : OASISTypes.args OASISTypes.conditional;
bs_dllpath : OASISTypes.args OASISTypes.conditional;
bs_byteopt : OASISTypes.args OASISTypes.conditional;
bs_nativeopt : OASISTypes.args OASISTypes.conditional;
}
type library = {
lib_modules : string list;
lib_pack : bool;
lib_internal_modules : string list;
lib_findlib_parent : OASISTypes.findlib_name option;
lib_findlib_name : OASISTypes.findlib_name option;
lib_findlib_directory : OASISTypes.unix_dirname option;
lib_findlib_containers : OASISTypes.findlib_name list;
}
type object_ = {
obj_modules : string list;
obj_findlib_fullname : OASISTypes.findlib_name list option;
obj_findlib_directory : OASISTypes.unix_dirname option;
}
type executable = {
exec_custom : bool;
exec_main_is : OASISTypes.unix_filename;
}
type flag = {
flag_description : string option;
flag_default : bool OASISTypes.conditional;
}
type source_repository = {
src_repo_type : OASISTypes.vcs;
src_repo_location : OASISTypes.url;
src_repo_browser : OASISTypes.url option;
src_repo_module : string option;
src_repo_branch : string option;
src_repo_tag : string option;
src_repo_subdir : OASISTypes.unix_filename option;
}
type test = {
test_type : [ `Test ] OASISTypes.plugin;
test_command : OASISTypes.command_line OASISTypes.conditional;
test_custom : OASISTypes.custom;
test_working_directory : OASISTypes.unix_filename option;
test_run : bool OASISTypes.conditional;
test_tools : OASISTypes.tool list;
}
type doc_format =
HTML of OASISTypes.unix_filename
| DocText
| PDF
| PostScript
| Info of OASISTypes.unix_filename
| DVI
| OtherDoc
type doc = {
doc_type : [ `Doc ] OASISTypes.plugin;
doc_custom : OASISTypes.custom;
doc_build : bool OASISTypes.conditional;
doc_install : bool OASISTypes.conditional;
doc_install_dir : OASISTypes.unix_filename;
doc_title : string;
doc_authors : string list;
doc_abstract : string option;
doc_format : OASISTypes.doc_format;
doc_data_files :
(OASISTypes.unix_filename * OASISTypes.unix_filename option) list;
doc_build_tools : OASISTypes.tool list;
}
type section =
Library of OASISTypes.common_section * OASISTypes.build_section *
OASISTypes.library
| Object of OASISTypes.common_section * OASISTypes.build_section *
OASISTypes.object_
| Executable of OASISTypes.common_section * OASISTypes.build_section *
OASISTypes.executable
| Flag of OASISTypes.common_section * OASISTypes.flag
| SrcRepo of OASISTypes.common_section * OASISTypes.source_repository
| Test of OASISTypes.common_section * OASISTypes.test
| Doc of OASISTypes.common_section * OASISTypes.doc
type section_kind =
[ `Doc | `Executable | `Flag | `Library | `Object | `SrcRepo | `Test ]
type package = {
oasis_version : OASISVersion.t;
ocaml_version : OASISVersion.comparator option;
findlib_version : OASISVersion.comparator option;
alpha_features : string list;
beta_features : string list;
name : OASISTypes.package_name;
version : OASISVersion.t;
license : OASISLicense.t;
license_file : OASISTypes.unix_filename option;
copyrights : string list;
maintainers : string list;
authors : string list;
homepage : OASISTypes.url option;
bugreports : OASISTypes.url option;
synopsis : string;
description : OASISText.t option;
tags : string list;
categories : OASISTypes.url list;
conf_type : [ `Configure ] OASISTypes.plugin;
conf_custom : OASISTypes.custom;
build_type : [ `Build ] OASISTypes.plugin;
build_custom : OASISTypes.custom;
install_type : [ `Install ] OASISTypes.plugin;
install_custom : OASISTypes.custom;
uninstall_custom : OASISTypes.custom;
clean_custom : OASISTypes.custom;
distclean_custom : OASISTypes.custom;
files_ab : OASISTypes.unix_filename list;
sections : OASISTypes.section list;
plugins : [ `Extra ] OASISTypes.plugin list;
disable_oasis_section : OASISTypes.unix_filename list;
schema_data : PropList.Data.t;
plugin_data : OASISTypes.plugin_data;
}
type 'a quickstart_level =
NoChoice of 'a
| Beginner
| Intermediate
| Expert
type 'a quickstart_question =
Field
| Text
| Choices of 'a list
| ExclusiveChoices of 'a list
val odn_of_unix_dirname : OASISTypes.unix_dirname -> OASISDataNotation.t
val odn_of_unix_filename : OASISTypes.unix_filename -> OASISDataNotation.t
val odn_of_command_line :
OASISTypes.prog * OASISTypes.args -> OASISDataNotation.t
val odn_of_conditional :
('a -> OASISDataNotation.t) ->
'a OASISExpr.choices -> OASISDataNotation.t
val odn_of_package : OASISTypes.package -> OASISDataNotation.t
end`