Commit Graph

234 Commits

Author SHA1 Message Date
Jérémie Dimino 1feab6b2a6
Allow to specify additional libraries for the test runner (#600) 2018-03-09 19:51:02 +00:00
Jeremie Dimino cc845e5fdb Make all variables accessible in jbuild files 2018-03-07 09:40:08 +00:00
Jeremie Dimino d415ed5f6c Expose a few more variables 2018-03-07 09:40:08 +00:00
Jeremie Dimino 232acdd92f Libraries and executables can allow overlapping dependencies 2018-03-06 12:59:01 +00:00
Rudi Grinberg 5ecf354127 Add a sub-system for inline tests (#547)
To support frameworks such as ppx_inline_test, ppx_expect and qtest
2018-02-27 19:06:12 +00:00
Saswat Padhi af76ecb6a0
Fixed a small typo 2018-02-21 20:29:48 -08:00
Christophe Troestler 75ad9736f8 Move usexp in src/ as it diverged from parsexp 2018-02-15 00:43:08 +01:00
Christophe Troestler 4ddb268b39 Update the documentation for quoted strings 2018-02-15 00:43:08 +01:00
Jérémie Dimino b3838284c6
Better support for mli/rei only modules (#489) 2018-02-08 10:12:46 +00:00
Jeremie Dimino 3347d4d59f Regenerate doc/jbuild 2018-02-07 12:11:27 +00:00
Jérémie Dimino 0570e09f9a
Add a configuration file and a quiet mode (#490) 2018-02-07 11:38:21 +00:00
Jérémie Dimino 437211f74f
Expose the promote mode (#437) 2018-01-25 19:07:46 +00:00
Louis Roché ecccd90196
doc: fix link to ocaml-cross organization on github 2018-01-25 05:40:05 +00:00
Rudi Grinberg 58f9e9840c Replace janestreet/jbuilder with ocaml/dune
Update all links where necessary
2018-01-23 17:52:44 +08:00
Jeremie Dimino 748da3433a Update urls for the opam-cross-x repositories 2018-01-22 09:45:43 +00:00
Jérémie Dimino 9dd5ab74e4
[WIP] Load rules lazily (#370)
* Change jbuilder to load rules lazily

Rules are now loaded on a per directory basis as needed. This speed up
the start up time on large workspaces.

Does various refactoring as well.

* Simplify the handling of META files

We no longer generate a META.foo.from-jbuilder file. Nobody is using
this feature and it's making the new code more complicated.
2018-01-19 08:50:06 +00:00
Jérémie Dimino b06aad431e
Replace promote actions by diff actions + promote command (#421)
* Remove (promote ...) and (promote-if ...)
* Remove `--promote ...`
* Add (diff ...) and (diff? ...)
* Add `jbuilder promote` and `--auto-promote`
* Fix #423
2018-01-18 11:32:20 +00:00
Anil Madhavapeddy 8c403c467f docs: fix typos in manual 2018-01-17 08:17:55 +00:00
Jérémie Dimino 49edf8ed65
Accept correction files produced by ppx_driver (#415)
* Accept correction files produced by ppx_driver so that [@@deriving_inline] works
* Change promote-if so that it doesn't promote the file when the source file doesn't exist in the source tree
2018-01-16 12:28:02 +00:00
Jeremie Dimino d4dec9b4f5 Change the default of --promote from check to copy
As said in the PR. I forgot to push the commit.
2018-01-15 14:55:17 +00:00
Jérémie Dimino eab1ff6c7b
Add promote actions and include stanzas (#402)
Add a promote action that allows to copy over generated files as
source files and an include stanza allowing to include a file in a
jbuild file.
2018-01-15 13:24:25 +00:00
Christophe Troestler f8617b5721 Let "concat" or "split" be a quality of the variable (#336)
* Let variables say whether they are Concat or Split

To concatenate the contents of a split variable, put it in a string:
"${var} ".

Fixes #300

See also https://github.com/janestreet/jbuilder/issues/408

* Issue a deprecation warning for ${!...}

* Treat ${CC}, ${<}, ${^} and ${read-lines:...} as split vars

* Change ${!^} into ${^} for this project jbuild rules
2018-01-15 09:32:40 +00:00
Jeremie Dimino 2b49123ae1 Update documentation to reflect cross compilation
Describes how to setup targets and toolchains and the changes to the workspace
syntax.
2018-01-01 22:34:41 +08:00
Rudi Grinberg a265889400
Mention ppxfind in docs (#357) 2017-12-11 19:40:54 +08:00
Ian Denhardt b5ba49d9b4 Clarify use of the .exe extension
.exe for executables is usually a windows-only convention; this threw me
for a moment and it seems worth calling out that this isn't platform
dependent.
2017-10-25 15:10:32 -04:00
Rudi Grinberg a63276f5b3 Merge pull request #268 from janestreet/new-alias-semantic
Sort out recursive/non-recursive aliases
2017-10-19 15:33:23 +08:00
Rudi Grinberg f9025a401a Document utop command 2017-10-14 18:50:37 +08:00
Jeremie Dimino 8466924a73 Update doc 2017-10-14 10:37:36 +08:00
Rudi Grinberg 97511eb77b fix header for "running tests" 2017-10-10 16:15:50 -04:00
Jeremie Dimino 5de73ca740 Add support for locks in rules
This is to allow users define more complicated tests without having
to resort to -j1.
2017-09-29 12:20:08 +01:00
Jeremie Dimino 50cbbe2ac5 Add ${path-no-dep:...}
To be able to resolve path names that are not dependencies.
2017-09-29 11:55:23 +01:00
Jeremie Dimino 8383a00e4c Generate man page for 'jbuilder utop' 2017-09-29 11:28:01 +01:00
Jeremie Dimino cc0bf2dfb7 Rephrase the doc for (merlin) in jbuild-workspace
Related to #257
2017-09-22 12:20:22 +01:00
Jeremie Dimino 157e4d6548 Print "Entering directory '...'" when necessary
When the root of the workspace is not the current directory, print:

  Entering directory '<absolute path to root>'

This way editors such as emacs or vim knows how to interpret filenames
reported by the compiler.

Fixes #138
2017-09-22 01:59:45 +01:00
Jeremie Dimino b2e7720b41 Interpret empty jbuild-workspace files as default configuration
If a workspace file is empty, interpret it the same as if it contained:

  (context default)

As discussed in #234
2017-09-22 01:59:45 +01:00
Jeremie Dimino 47d1f74ef0 Explain the difference between copy_files and copy_files# 2017-09-10 02:39:34 +01:00
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