This is an unexhaustive and probably inaccurate list of items that need to be looked at or completed to make obuild even better. It is a good source of idea for anyone wanting to contribute.
- support if/then/else construct in project file.
- add platform and architecture tests in project file: i.e. "if arch(x86) && ..."
- utf8 in project file (maybe useful ?)
- configure storing / build checking of system state (e.g. digest of libraries, pkg-config, etc)
- cache meta in a friendlier format in dist/ after configure. speed up build.
- arbitrary mechanism to poke at the platform and see what it supports. feeding the file autogeneration phase.
- per project and per system configuration file (à la git)
- use the transitive-edge-reduced dag for checking dependencies.
- remove redundant mtime checks by using a invaliding mtime hashtbl caching mechanism.
- improve change detection with a digest after mtime change.
- improve compilation with .mli by moving the dag pointer of its parents to the compiled interface, not the compiled module.
- ocamldep parallelization & multiples
- add install, and generate META
- generate HTML documentation
- generate cmxs
- generate opam files (.install and .config)
- benchs
- specification for the .obuild file format
- mli files and code documentation
- init: make it better
- add globs for extras source
- add automatic build-deps scanning/adding (see if possible and default to off probably)
- librarify some part of obuild (Config parsing, meta parsing, opam generation, dependencies analysis, building analysis,...)
- replace Digest by a faster (and more modern) digest module from cryptohash
- better portability (windows)
- add a way to refresh a .mli from scratch. for example obuild generate-mli src/ext.ml will (re-)write src/ext.mli
- add a simple way to switch stdlib so that core can be used instead of the compiler stdlib for any target. (project field parsing done already)
- have test (re-)build themselves when doing obuild test, instead of doing 'obuild build; obuild test'.
- improve command line experience (cmdliner ?)