# +-------------------------------------------------------------------+
# | Package parameters                                                |
# +-------------------------------------------------------------------+

OASISFormat: 0.3
OCamlVersion: >= 3.12
Name: obus
Version: 1.1.5
LicenseFile: LICENSE
License: BSD3
Authors: Jérémie Dimino
Homepage: http://obus.forge.ocamlcore.org/
BuildTools:ocamlbuild
Plugins: DevFiles (0.3), META (0.3)
FilesAB: src/oBus_config.ml.ab
Synopsis: obus
Description: Pure OCaml implementation of the D-Bus protocol

# +-------------------------------------------------------------------+
# | The core library                                                  |
# +-------------------------------------------------------------------+

Library obus
  Path: src
  Install: true
  Modules:
    OBus_address,
    OBus_auth,
    OBus_bus,
    OBus_connection,
    OBus_context,
    OBus_error,
    OBus_info,
    OBus_introspect_ext,
    OBus_introspect,
    OBus_match,
    OBus_member,
    OBus_message,
    OBus_method,
    OBus_name,
    OBus_object,
    OBus_path,
    OBus_peer,
    OBus_property,
    OBus_proxy,
    OBus_resolver,
    OBus_server,
    OBus_signal,
    OBus_string,
    OBus_transport,
    OBus_uuid,
    OBus_value,
    OBus_wire,
    OBus_interfaces
  InternalModules:
    OBus_address_lexer,
    OBus_match_rule_lexer,
    OBus_protocol,
    OBus_type_ext_lexer,
    OBus_util,
    OBus_xml_parser,
    OBus_config
  BuildDepends: lwt.unix, lwt.react, lwt.syntax, lwt.syntax.log, type_conv, xmlm
  XMETARequires: lwt.unix, lwt.react, xmlm
  XMETADescription: Pure OCaml implementation of D-Bus

# +-------------------------------------------------------------------+
# | Other libraries                                                   |
# +-------------------------------------------------------------------+

Library "obus-idl"
  Path: src
  Install: true
  Modules: OBus_idl
  BuildDepends: obus, camlp4.lib, camlp4.quotations.o, camlp4.extend
  FindlibName: idl
  FindlibParent: obus
  XMETADescription: Intermediate language for writing D-Bus interfaces
  XMETARequires: obus, camlp4.lib

Library "obus-syntax"
  Path: syntax
  Install: true
  InternalModules: Pa_obus
  FindlibName: syntax
  FindlibParent: obus
  BuildDepends: type_conv, camlp4, camlp4.quotations.o
  CompiledObject: byte
  XMETAType: syntax
  XMETARequires: camlp4, type_conv
  XMETADescription: Syntactic sugars for defining D-Bus errors

# +-------------------------------------------------------------------+
# | Interfaces to D-Bus services                                      |
# +-------------------------------------------------------------------+

Library "obus-hal"
  Path: bindings/hal
  Install: true
  Modules: Hal_device, Hal_manager, Hal_interfaces
  BuildDepends: obus
  FindlibName: hal
  FindlibParent: obus
  XMETADescription: Freedesktop Hal service binding

Library "obus-notification"
  Path: bindings/notification
  Install: true
  Modules: Notification, Notification_interfaces
  BuildDepends: obus
  FindlibName: notification
  FindlibParent: obus
  XMETADescription: Freedesktop Notification service binding

Library "obus-network-manager"
  Path: bindings/network-manager
  Install: true
  Modules:
    Nm_access_point,
    Nm_connection,
    Nm_device,
    Nm_dhcp4_config,
    Nm_ip4_config,
    Nm_ip6_config,
    Nm_manager,
    Nm_ppp,
    Nm_settings,
    Nm_vpn_connection,
    Nm_vpn_plugin,
    Nm_interfaces,
    Nm_monitor
  BuildDepends: obus
  FindlibName: network-manager
  FindlibParent: obus
  XMETADescription: Freedesktop NetworkManager service binding

Library "obus-upower"
  Path: bindings/upower
  Install: true
  Modules:
    UPower,
    UPower_device,
    UPower_policy,
    UPower_wakeups,
    UPower_interfaces,
    UPower_monitor
  BuildDepends: obus
  FindlibName: upower
  FindlibParent: obus
  XMETADescription: Freedesktop UPower service binding

Library "obus-udisks"
  Path: bindings/udisks
  Install: true
  Modules:
    UDisks,
    UDisks_device,
    UDisks_port,
    UDisks_adapter,
    UDisks_expander,
    UDisks_interfaces,
    UDisks_monitor
  BuildDepends: obus
  FindlibName: udisks
  FindlibParent: obus
  XMETADescription: Freedesktop UDisks service binding

Library "obus-policykit"
  Path: bindings/policykit
  Install: true
  Modules: Policy_kit, Policy_kit_interfaces
  BuildDepends: obus
  FindlibName: policykit
  FindlibParent: obus
  XMETADescription: Freedesktop PolicyKit service binding

# +-------------------------------------------------------------------+
# | Tools                                                             |
# +-------------------------------------------------------------------+

Executable "obus-gen-interface"
  Path: tools
  Install: true
  CompiledObject: best
  MainIs: obus_gen_interface.ml
  BuildDepends: lwt.unix, lwt.react, lwt.syntax, lwt.syntax.log, type_conv, xmlm, camlp4.quotations.o, camlp4.extend, camlp4.lib

Executable "obus-dump"
  Path: tools
  Install: true
  CompiledObject: best
  MainIs: obus_dump.ml
  BuildDepends: obus

Executable "obus-gen-client"
  Path: tools
  Install: true
  CompiledObject: best
  MainIs: obus_gen_client.ml
  BuildDepends: obus, obus.idl, camlp4.lib

Executable "obus-gen-server"
  Path: tools
  Install: true
  CompiledObject: best
  MainIs: obus_gen_server.ml
  BuildDepends: obus, obus.idl, camlp4.lib

Executable "obus-xml2idl"
  Path: tools
  Install: true
  CompiledObject: best
  MainIs: obus_xml2idl.ml
  BuildDepends: obus, obus.idl, camlp4.lib

Executable "obus-idl2xml"
  Path: tools
  Install: true
  CompiledObject: best
  MainIs: obus_idl2xml.ml
  BuildDepends: obus, obus.idl, camlp4.lib

Executable "obus-introspect"
  Path: tools
  Install: true
  CompiledObject: best
  MainIs: obus_introspect.ml
  BuildDepends: obus

# +-------------------------------------------------------------------+
# | Man pages                                                         |
# +-------------------------------------------------------------------+

Document "obus-dump-man"
  Type: custom (0.3)
  Title: Man page for obus-dump
  Install: true
  BuildTools: gzip
  XCustom: $gzip -c man/obus-dump.1 > man/obus-dump.1.gz
  XCustomClean: $rm man/obus-dump.1.gz
  DataFiles: man/obus-dump.1.gz
  InstallDir: $mandir/man1

Document "obus-gen-interface-man"
  Type: custom (0.3)
  Title: Man page for obus-gen-interface
  Install: true
  BuildTools: gzip
  XCustom: $gzip -c man/obus-gen-interface.1 > man/obus-gen-interface.1.gz
  XCustomClean: $rm man/obus-gen-interface.1.gz
  DataFiles: man/obus-gen-interface.1.gz
  InstallDir: $mandir/man1

Document "obus-gen-client-man"
  Type: custom (0.3)
  Title: Man page for obus-gen-client
  Install: true
  BuildTools: gzip
  XCustom: $gzip -c man/obus-gen-client.1 > man/obus-gen-client.1.gz
  XCustomClean: $rm man/obus-gen-client.1.gz
  DataFiles: man/obus-gen-client.1.gz
  InstallDir: $mandir/man1

Document "obus-gen-server-man"
  Type: custom (0.3)
  Title: Man page for obus-gen-server
  Install: true
  BuildTools: gzip
  XCustom: $gzip -c man/obus-gen-server.1 > man/obus-gen-server.1.gz
  XCustomClean: $rm man/obus-gen-server.1.gz
  DataFiles: man/obus-gen-server.1.gz
  InstallDir: $mandir/man1

Document "obus-idl2xml-man"
  Type: custom (0.3)
  Title: Man page for obus-idl2xml
  Install: true
  BuildTools: gzip
  XCustom: $gzip -c man/obus-idl2xml.1 > man/obus-idl2xml.1.gz
  XCustomClean: $rm man/obus-idl2xml.1.gz
  DataFiles: man/obus-idl2xml.1.gz
  InstallDir: $mandir/man1

Document "obus-xml2idl-man"
  Type: custom (0.3)
  Title: Man page for obus-xml2idl
  Install: true
  BuildTools: gzip, rm
  XCustom: $gzip -c man/obus-xml2idl.1 > man/obus-xml2idl.1.gz
  XCustomClean: $rm man/obus-xml2idl.1.gz
  DataFiles: man/obus-xml2idl.1.gz
  InstallDir: $mandir/man1

Document "obus-introspect-man"
  Type: custom (0.3)
  Title: Man page for obus-introspect
  Install: true
  BuildTools: gzip, rm
  XCustom: $gzip -c man/obus-introspect.1 > man/obus-introspect.1.gz
  XCustomClean: $rm man/obus-introspect.1.gz
  DataFiles: man/obus-introspect.1.gz
  InstallDir: $mandir/man1

# +-------------------------------------------------------------------+
# | Doc                                                               |
# +-------------------------------------------------------------------+

Document "obus-manual"
  Title: OBus user manual
  Type: custom (0.3)
  Install: true
  XCustom: make -C manual manual.pdf
  DataFiles: manual/manual.pdf
  InstallDir: $pdfdir

Document "obus-api"
  Title: API reference for OBus
  Type: ocamlbuild (0.3)
  Install: true
  InstallDir: $htmldir/api
  DataFiles: utils/doc/style.css
  BuildTools: ocamldoc
  XOCamlbuildPath: ./
  XOCamlbuildLibraries:
    obus,
    obus.hal,
    obus.idl,
    obus.network-manager,
    obus.notification,
    obus.policykit,
    obus.udisks,
    obus.upower

# +-------------------------------------------------------------------+
# | Tests                                                             |
# +-------------------------------------------------------------------+

Executable tests_exec
  Path: tests
  Install: false
  Build$: flag(tests)
  CompiledObject: best
  MainIs: main.ml
  BuildDepends: obus

Test main
  Command: $tests_exec
  TestTools: tests_exec

# +-------------------------------------------------------------------+
# | Examples                                                          |
# +-------------------------------------------------------------------+

Document examples
  Title: Examples
  Type: custom (0.3)
  Install: true
  XCustom: true
  DataFiles: examples/*.ml, examples/*.xml
  InstallDir: $docdir/examples

Executable "bus-functions"
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: bus_functions.ml
  BuildDepends: obus, lwt.syntax

Executable eject
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: eject.ml
  BuildDepends: obus, lwt.syntax, obus.hal

Executable hello
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: hello.ml
  BuildDepends: obus, lwt.syntax

Executable "list-services"
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: list_services.ml
  BuildDepends: obus, lwt.syntax

Executable monitor
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: monitor.ml
  BuildDepends: obus, lwt.syntax

Executable notify
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: notify.ml
  BuildDepends: obus, lwt.syntax, obus.notification

Executable ping
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: ping.ml
  BuildDepends: obus, lwt.syntax

Executable pong
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: pong.ml
  BuildDepends: obus, lwt.syntax

Executable signals
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: signals.ml
  BuildDepends: obus, lwt.syntax, obus.hal

Executable "network-manager"
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: network_manager.ml
  BuildDepends: obus, lwt.syntax, obus.network-manager

Executable "battery-monitoring"
  Path: examples
  Install: false
  CompiledObject: best
  MainIs: battery_monitoring.ml
  BuildDepends: obus, lwt.syntax, obus.upower

# +-------------------------------------------------------------------+
# | Misc                                                              |
# +-------------------------------------------------------------------+

SourceRepository head
  Type: darcs
  Location: http://darcs.ocamlcore.org/repos/obus
  Browser: http://darcs.ocamlcore.org/cgi-bin/darcsweb.cgi?r=obus;a=summary
