Commit Graph

298 Commits

Author SHA1 Message Date
François Bobot cecf0a2aaf Add (copy_files <glob>) stanza (#35)
Add (copy_files <glob>) and (copy_files# <glob>) stanzas. These
stanzas setup rules for copying files from a sub-directory to the
current directory.

This provides a reasonable way to support multi-directory
library/executables in jbuilder.
2017-09-10 02:31:07 +01:00
Jeremie Dimino 297e82061e Update_file --> Write_file
The difference is not meaningful anymore. Also expose Write_file as
write-file.
2017-08-17 15:13:11 +01:00
Jérémie Dimino 6bed864057 Better behavior when the targets of a rule already exist in the source tree (#218)
Warn when a file is both present in the source tree and generated by
a rule. Before, jbuilder would silently ignore the rule. One now has
to add a field `(fallback)` to custom rules to keep the current
behavior.
2017-08-15 11:16:11 +01:00
Nicolás Ojeda Bär 3b1182c23a Fix typos 2017-08-15 07:32:17 +01:00
Jeremie Dimino b913a42739 Fix documentation about library dependencies 2017-08-08 13:56:28 +01:00
Jeremie Dimino 06b47a73f6 Do not accept per_file anymore
It was renamed per_module and it is planned to reuse per_file for
another purpose.
2017-08-04 09:24:02 +01:00
David Allsopp 13b0eb9f2b Convert link_flags to the ordered set DSL 2017-08-03 17:28:32 +01:00
David Allsopp ec29651cff Extend (:include ) form to js_of_ocaml flags 2017-08-03 17:28:32 +01:00
David Allsopp cebbb219e7 Extend (:include ) form to OCaml flags
flags, ocaml_flags and ocamlopt_flags now support the (:include ) form
of the ordered set language.
2017-08-03 17:28:32 +01:00
Jeremie Dimino cfd43d5282 Simplify a bit the rules for installation of library files 2017-07-25 17:07:24 +01:00
François Bobot 44a15bcd24 Fix documentation for `--libdir` 2017-07-25 16:44:14 +01:00
François Bobot 747cf220c6 Install by specifying libdir for opam-installer
- change default findlib directory (ocamlc -where)
2017-07-25 16:44:14 +01:00
Jeremie Dimino 4b40cad247 Revert public_interfaces for now
The code to support it is starting to become increasingly complicated
and the number of problem found is a bit alarming.

We'll reinclude it later after a bit more testing and hopefully some
simplifications.
2017-07-21 17:32:39 +01:00
Jeremie Dimino 9893c14500 Fix some problems related to public_interfaces
The dependencies on library artifacts are now properly setup to point
to the files in _build/install/...

Moreorver, private interfaces are now only visible inside the library
itself and are only allowed for private libraries. When a project
defines multiple packages, this ensures that the visibility when all
packages are built simultaneously and when they are installed one by
one.

We can relax these restrictions later with a bit more work and a clear
definition of where private modules should be visible.
2017-07-21 16:52:28 +01:00
Jeremie Dimino 2b93f960b6 Doc tweaks 2017-07-19 15:31:17 +01:00
François Bobot a3933a2c18 Add public_interfaces selection for libraries (#106)
Add a field "public_interfaces" to library stanza listing which modules are public.

Private modules won't be accessible outside the scope where the library is defined.
2017-07-19 15:26:48 +01:00
Egor Panfilov 15f2687f0f Added missing parenthesis in quickstart 2017-07-16 13:56:48 +03:00
Anton Bachin 63b63eb0ac Fix typos 2017-06-17 12:06:58 -04:00
Tim McGilchrist a9f7166a2a Spelling 2017-06-16 14:20:06 +10:00
Jeremie Dimino daeb40b087 Add SCOPE_ROOT
While analysing packages using jbuilder, I found that some packages
use ${ROOT} to refer to the root of the project. However, this doesn't
work as ${ROOT} depends on the workspace configuration.

Add ${SCOPE_ROOT} to make this easier for projects with a lot of
nested sub-directories.
2017-06-09 12:45:05 +01:00
Jeremie Dimino eb7b5e2be4 Help users to not use non-future proof features in jbuild files 2017-06-08 11:33:59 +01:00
Jeremie Dimino e4300e7b51 Make (run prog ...) behave the same as (run ${bin:prog} ...)
This just seems like a better default
2017-06-08 10:37:25 +01:00
Jérémie Dimino 2e2a707d4b Automatically install executable with extension `.exe` on Windows (#123)
- Automatically add exe extension when installing executables
- Look for local binaries with .exe extension on Windows
2017-06-08 09:59:43 +01:00
Jeremie Dimino 0cea06b5d2 Fix #125 2017-06-06 14:59:21 +01:00
Jeremie Dimino e51002d1b7 Restrict what one can do with the OCaml syntax
Until we decide in what direction it should go.
2017-06-06 10:23:22 +01:00
Anil Madhavapeddy d279e1e25d docs: remove an extra set of brackets from the `select ... from` (#121)
Looks like the right syntax is `(select foo from (x -> y) ( -> y))`
from the example use in js_of_ocaml/compiler
2017-06-05 16:16:49 +01:00
Jeremie Dimino 2be5e593d6 rework the documentation of scopes 2017-06-05 12:33:45 +01:00
Jeremie Dimino a392b59fcd copy-and-add-line-directive --> copy# 2017-06-05 12:11:39 +01:00
Jeremie Dimino a677a6077e Add a note about byte-code executables (#108) 2017-06-02 18:54:45 +01:00
Jeremie Dimino 9eb215055e Remove the use of (foreach ...) in doc/jbuild 2017-06-02 18:25:20 +01:00
Jeremie Dimino a7446ec7d3 per_file --> per_module 2017-06-02 17:58:20 +01:00
Jeremie Dimino fd76d7b9a9 Remove (ml_of_mli ...) and (re_of_rei ...)
Instead make jbuilder print the rule to do the same in the warning
message. The rule is not that big. Also add a note about mli only
modules in the "Known issues" section of the README.

This avoids polluting the jbuild specification and is still a
reasonable solution until someone implements proper support for mli
only modules in the compiler.
2017-06-02 13:17:28 +01:00
Jeremie Dimino 7dc30d1184 Document `jbuilder subst` in the manual 2017-06-02 11:59:14 +01:00
Jeremie Dimino 5e06daa5b2 Rename (do ...) to (rule ...) 2017-06-01 16:53:55 +01:00
Rudi Grinberg f98072deb7 Doc tweaks (#112)
* Fix a link and some typos
* Fix some crappy formatting introduced by the pandoc conversion.
* Use more subheadings rather than points.
2017-06-01 16:02:29 +01:00
Jeremie Dimino 827aac0e43 Fix doc for (preprocess (per_file ...)) 2017-06-01 11:19:59 +01:00
Jeremie Dimino 1c8ffaa3aa Check that no targets are generated outside of the current dir 2017-05-31 10:34:17 +01:00
Jeremie Dimino 419df111bf Update doc 2017-05-30 17:10:50 +01:00
Jeremie Dimino 5167dd2f16 Document the (<file> as <destination>) syntax 2017-05-30 12:27:20 +01:00
Jeremie Dimino a8a43e4b22 Add ${!^} and ${!@} and document them 2017-05-29 19:12:37 +01:00
Jeremie Dimino 3241026fff Update doc 2017-05-29 18:55:39 +01:00
Jeremie Dimino 65a54f405b Add an example to build a toplevel 2017-05-29 14:31:36 +01:00
Jeremie Dimino 9f8803af67 Add (modes ...) for executables 2017-05-29 14:18:07 +01:00
Jeremie Dimino df3ac59d72 Clarify availability of native compilation 2017-05-29 13:18:55 +01:00
Jeremie Dimino 9dda44d65d Add a comment in the jbuild of the hello_world example 2017-05-29 10:32:36 +01:00
Jeremie Dimino 3d3b10d6a7 executables --> executable in the quick start 2017-05-29 10:31:42 +01:00
Jeremie Dimino 052dda3177 Add a comment about jbulder and findlib predicates
CLoses #96
2017-05-29 10:26:37 +01:00
Jeremie Dimino 82ecbcf64a Update the doc 2017-05-29 10:05:04 +01:00
Jeremie Dimino 5372ebdea1 Remove jane_street version
It's not used. We'll re-add it if really necessary.
2017-05-29 09:54:56 +01:00
David Allsopp 9e81f887de Document the comment symbol in jbuild files 2017-05-29 08:54:50 +01:00
Hezekiah M. Carty 3d194c5276 Minor typos 2017-05-29 08:51:44 +01:00
Jérémie Dimino f1ebc0ed7d Add (mli-to-ml ...) as a hack for mli only modules 2017-05-29 07:51:52 +01:00
Jérémie Dimino c6cc8204bf Add (foreach ...) form 2017-05-29 07:51:52 +01:00
Markus Mottl e63a6e4006 Command typo 2017-05-27 20:18:19 -04:00
Jeremie Dimino 15491fd599 Document API doc 2017-05-26 18:34:49 +01:00
Richard Davison 91d03de221 Add clean subcommand (#89) 2017-05-26 11:32:32 +01:00
Marek Kubica 3633d5b012 Fix small typo in quickstart 2017-05-24 14:38:10 +01:00
Yaron Minsky f994c4690e Update quick-start.rst 2017-05-22 11:58:58 +01:00
Yaron Minsky 4dada0e91d Update quick-start.rst 2017-05-22 11:58:58 +01:00
Yaron Minsky ad9285493b Add an example showing how to use ppx_jane 2017-05-22 11:58:58 +01:00
Yaron Minsky b8acabee43 Fix language choice for example in docs. 2017-05-21 14:45:06 -04:00
Jeremie Dimino c6dac87ee9 Ignore all directories starting with '.' pr '_' 2017-05-19 12:36:06 +01:00
Jérémie Dimino fe30935fa2 Rename 'extract-makefile' to 'rules' 2017-05-19 08:27:21 +01:00
Rudi Grinberg 1309a92ec5 Fix links in rst docs
Were not converted correctly by pandoc so they must be fixed manually
2017-05-19 08:25:46 +01:00
Jeremie Dimino d219020b2f added jbuilder extract-makefile 2017-05-18 19:05:01 +01:00
Louis Roché f57c084f4b fix typo in quick start documentation (#79) 2017-05-17 08:12:58 +01:00
Jeremie Dimino d0be25cd88 manual.org and quick-start.org no longer exist 2017-05-15 17:14:10 +01:00
Rudi Grinberg 56093df13e Read The Docs
Port manual to RST to make it usable on readthedocs.

conf.py was only there to make it easy to preview changes if you have sphinx
installed.
2017-05-15 11:53:55 -04:00
Jeremie Dimino 15f43615c5 Add a note about % in user rules
Related to #73
2017-05-11 16:07:59 +01:00
Jeremie Dimino ddadf85d62 doc 2017-05-08 17:11:04 +01:00
Jeremie Dimino dce491e661 Add a subst command for watermarking files 2017-05-08 16:56:21 +01:00
Bikal Gurung 6ab59ddc53 Fix typo (#70) 2017-05-08 08:16:22 +01:00
Jeremie Dimino 4130bc2f63 Add support for ${version:<package>} 2017-05-05 12:26:56 +01:00
hhugo 5cf647e358 Documentation for js_of_ocaml (#69) 2017-05-05 08:49:29 +01:00
hhugo 031d57a70a Documentation for JavaScript targets 2017-05-04 14:11:42 +01:00
Jeremie Dimino 411d1a2f2c Refactoring
- add Super_context.resolve_program and use it everywhere.
- add src/js_of_ocaml.mli
2017-05-02 12:01:27 +01:00
hhugo 86a4f0324a Add js_of_ocaml support (#60)
Add rules for building .js files from .bc files using js_of_ocaml as well as rules for separate js compilation when --dev is passed.
2017-05-02 11:25:37 +01:00
Jeremie Dimino b48f545b5f Update manual about (package ...) fields in alias stanzas 2017-05-02 10:13:03 +01:00
Rudi Grinberg c9ec382f28 Document package field in alias stanza 2017-05-02 09:57:03 +01:00
Jeremie Dimino 52b326ab43 Advertise reason support 2017-04-20 16:52:05 +01:00
Jeremie Dimino ff6019c919 Document manual installation and where external libraries are looked up 2017-04-19 16:06:32 +01:00
Jeremie Dimino aea7ba8cbf Update the opam invocation 2017-04-18 12:32:39 +01:00
Jeremie Dimino 03f1f42e57 Document: --cookie library-name="..." 2017-04-17 13:56:44 +01:00
Jeremie Dimino 07871b1190 Add support for ${lib-available:<name>} forms 2017-04-17 12:48:54 +01:00
Jeremie Dimino 72550dc3e0 Add a -p/--for-release-of-packages command line argument
`-p pkgs` is the equivalent of `--root . --only-packages pkgs`
2017-04-10 10:44:49 +01:00
Jeremie Dimino d948edbc4c Add a (no_dynlink) field 2017-04-10 10:10:15 +01:00
Rudi Grinberg b9d145dd80 Fix typo in manual 2017-04-07 17:23:35 -04:00
Jeremie Dimino 989d0bd91a s/option/field/ 2017-04-03 16:29:27 +01:00
Rudi Grinberg 3e3d92c9e5 Add menhir support (#42)
Adds the menhir stanza which desugars into a Rule.t with Support for:
* ocamlyacc like use
* modular parsers with --base
* passing extra flags

Also add tests and documentation.
2017-04-03 16:25:43 +01:00
Jeremie Dimino d14fdd8f98 Document how to run tests
Fix #45
2017-03-30 18:10:23 +01:00
Adrien Guatto c05f410b75 Improve wording and fix typos in documentation 2017-03-30 17:42:07 +01:00
Jeremie Dimino 3ae53de431 Add an "executable" stanza and make it easier to install executables
(executable ...) is easier to use where there is a single executable.

Also add a (package ...) and (public_name <name>)/(public_names
(<names)) to executable/executables stanzas, to make it easier to
install executables.

Closes #33
2017-03-22 15:09:26 +00:00
Jeremie Dimino 57f4203102 Fix a few (action ...) in the doc
Closes #32
2017-03-22 11:25:57 +00:00
Jeremie Dimino a07df550e0 Update the quick-start guide 2017-03-21 14:39:12 +00:00
Jeremie Dimino a84e338436 Typo
Fix #31
2017-03-21 10:49:54 +00:00
Jeremie Dimino 8c6cffd2df Document (files_recursively_in ...) 2017-03-15 09:11:42 +00:00
Jeremie Dimino 847c771cb8 Add (jbuild_version 1) to jbuilds in the quick start guide 2017-03-14 09:43:55 +00:00
Jérémie Dimino ba08f27678 Add a few more redirections
- with-{stdout,stderr,outputs}-to
- ignore-{stdout,stderr,outputs}
- variable ${null} for /dev/null or NUL on Win32
2017-03-13 08:10:59 +00:00
Laurent Mazare 0b7d16ccdf Fix the runtest alias example. 2017-03-10 21:28:44 +00:00
Jeremie Dimino dd6a23ec18 Fix #15
When there are no <pkg>.opam files in parent directories, use the
whole workspace as scope
2017-03-10 15:44:17 +00:00
Jeremie Dimino 4aec06ee46 Better rules for finding the root 2017-03-10 10:41:34 +00:00
Hao Wu 5faf444db3 Fix doc: jbuilder build xxx instead of jbuilder xxx (#16) 2017-03-10 09:39:59 +00:00
Jeremie Dimino 374c29c7cc Install the quick start guide 2017-03-09 12:02:26 +00:00
Jeremie Dimino fa95e71565 Update the quick start guide 2017-03-09 12:02:02 +00:00
Jérémie Dimino 74e015923a Ignore <package>.opam when <package> is empty 2017-03-09 06:41:42 +00:00
Jeremie Dimino 3a86b3fefa Fix root finding
Look for .opam files instead of .install ones...
2017-03-08 12:10:54 +00:00
Jeremie Dimino 7e36b3cd86 Add self_build_stubs_archive to v1 2017-03-07 13:21:54 +00:00
Jeremie Dimino 4722d0e0d3 Update the manual 2017-03-06 15:15:04 +00:00
Jeremie Dimino a90b436020 Update the manual 2017-03-06 14:23:15 +00:00
Jérémie Dimino 6364f70245 Fix a few ppx related issues 2017-03-05 11:57:27 +00:00
Jérémie Dimino cef3847977 Do no require ppx_driver 2017-03-05 09:38:39 +00:00
Jeremie Dimino 8633236dfa Update the manual 2017-03-03 13:18:21 +00:00
Jeremie Dimino 8ddcf0b160 typo 2017-03-03 07:25:06 +00:00
Jeremie Dimino 4fa0844e42 Remove build-package in favor of --only-packages 2017-03-02 18:21:19 +00:00
Jeremie Dimino 51ce0c2daf Restrict the scope of internal names
Otherwise building several packages at once doesn't always work
2017-03-02 16:57:28 +00:00
Jeremie Dimino d338bdd134 more doc 2017-03-02 12:14:50 +00:00
Jeremie Dimino 16bd433e4e Do not compute external library dependencies eagerly 2017-03-02 11:34:13 +00:00
Jeremie Dimino 084baba117 Better specification of user actions 2017-03-02 10:36:05 +00:00
Jeremie Dimino a206c5cfda Update the manual regarding the ppx status
Following #14
2017-03-02 10:07:24 +00:00
Jeremie Dimino 3aef1d6f3c Revert "Rename _build to _jbuild (#13)"
This reverts commit 89c15ca2c5.

Keep _build as the build directory until we get a better consensus.
2017-03-01 16:09:02 +00:00
Rudi Grinberg 89c15ca2c5 Rename _build to _jbuild (#13)
_build is already quite overloaded.
2017-03-01 13:37:05 +00:00
Jeremie Dimino 6e25a7dfe5 Remove (provides ...) and uses (install ...) instead 2017-03-01 11:20:17 +00:00
Jeremie Dimino 60be8f7734 Remove the Ocamllex/Ocamlyacc modules and desugar them instead 2017-03-01 09:21:34 +00:00
Rudi Grinberg 78a2b27bc1 Fix up manual/roadmap (#11)
* fix a bunch of typos
* s/rule/alias/ in the alias section
* clarify that multiple exe's in the same dir with a different build conf. are
possible
2017-03-01 08:54:21 +00:00
Jérémie Dimino fea880f31f Update the manual 2017-02-28 23:28:35 +00:00
Jérémie Dimino d627744513 Fix the interpretation of 2017-02-28 23:26:53 +00:00
Jeremie Dimino d075544d0a Small improvements in the manual 2017-02-28 18:27:28 +00:00
Jeremie Dimino 2e7d592f66 implement the manual properly for (install ...) stanzas 2017-02-28 18:17:15 +00:00
Jeremie Dimino efbe548612 add a cppo example 2017-02-28 17:25:31 +00:00
Jeremie Dimino 55405f7f25 Rework the readme 2017-02-28 17:20:41 +00:00
Jeremie Dimino dc5c5851ff Execute preprocess commands using the system shell 2017-02-28 10:32:57 +00:00
Jérémie Dimino ac372ce63a Allow to use installed libraries in jbuild plugins 2017-02-28 06:31:02 +00:00
Jeremie Dimino e540602ad9 Add a few more actions
Just enough to handle the common cases.
2017-02-27 14:15:30 +00:00
Jérémie Dimino ff0fa5885f Update the manual 2017-02-26 19:56:38 +00:00
Jérémie Dimino 38421d7e41 Replace meta language by ocaml 2017-02-26 19:49:54 +00:00
Jérémie Dimino 8d52cba130 Add support for a meta language in jbuild files 2017-02-26 12:38:36 +00:00
Jérémie Dimino a600d47e37 Fix the manual 2017-02-25 01:52:37 +00:00
Jérémie Dimino 9fe0e9c87d Improve alias management 2017-02-25 01:33:37 +00:00
Jeremie Dimino 593b90723d Implement package version support 2017-02-24 18:21:22 +00:00
Jeremie Dimino a0ce6a68aa Install all manual pages 2017-02-24 17:36:39 +00:00
Jeremie Dimino ecc3462912 Add (with-stdout-to ...) 2017-02-24 16:47:23 +00:00
Jeremie Dimino e148f75ee4 add an install alias 2017-02-24 12:54:51 +00:00
Jeremie Dimino 89335dd5e4 Better support for cross-compilation 2017-02-24 10:28:31 +00:00
Jeremie Dimino ae376d30d2 Better support for byte-code only architectures 2017-02-24 10:13:13 +00:00
Jeremie Dimino f9c80160f1 Implement versionned jbuild parsers 2017-02-24 09:41:32 +00:00
Jeremie Dimino ee7ab05d9e Better for user written/generated META files 2017-02-23 17:34:11 +00:00
Jeremie Dimino 331b9dc14e Include generated files when looking for odig doc files 2017-02-23 14:16:29 +00:00
Jeremie Dimino aa2242989f added documentation 2017-02-21 15:09:26 +00:00