Commit Graph

558 Commits

Author SHA1 Message Date
Jeremie Dimino 0d1a3b7378 Change the name of intermediate files for reason projects
before:

- foo.re  --> foo.re.ml
- foo.rei --> foo.rei.mli

after:

- foo.re  --> foo.re.ml
- foo.rei --> foo.re.mli

When compiling foo.re.ml with ocamlc or ocamlopt, the compiler checks
for the existence of foo.re.mli to determine whether the file has an
explicit interface or not. With the previous naming scheme, the
compiler always thought that there was no interface and was
re-creating the .cmi, which caused a race condition.

Fixes #184
2017-07-18 16:16:00 +01:00
Jeremie Dimino 71c748860d Fix #190 2017-07-17 12:49:59 +01:00
François Bobot 9935c838b3 Use lowercase_ascii 2017-07-07 12:27:31 +02:00
Rudi Grinberg 97a855524c Remove duplicate check for merlin context (#175)
This check is done in add_rules and dot_merlin. Only of those checks is
necessary. The check in dot_merlin is removed.
2017-06-30 12:03:11 +01:00
Jeremie Dimino aed36a76dd Quote a few paths in error messages when necessary 2017-06-26 13:33:01 +01:00
François Bobot 52afe84c83 Fix some warning 50 for 4.02.3 (#161)
Warning 50: unattached documentation comment (ignored)
2017-06-26 10:28:37 +01:00
Jeremie Dimino c0200c3baa Add Alias.of_file and Alias.name_of_file 2017-06-26 09:53:37 +01:00
Jeremie Dimino bf5f366e96 Typo 2017-06-15 17:39:25 +01:00
Jeremie Dimino 34df3d5fd9 Fix check for dependency on the lib interface module 2017-06-15 14:17:54 +01:00
David Allsopp 574866af2e Correct detected value for ocaml on Windows 2017-06-15 12:14:56 +02:00
David Allsopp d809a3362a Prevent Future.Temp.destroy from failing 2017-06-15 12:14:56 +02:00
David Allsopp bf3fa0831d Add Sys.force_remove
Sys.force_remove is Sys.remove, except on Windows, where it will remove
the "read-only" attribute and re-try a failed Sys.remove
2017-06-15 12:14:56 +02: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 572774490a Report an error for invalid dependency between modules in wrapped libraries
Report an error when in a wrapped library, a module that is not the
toplevel module depends on the toplevel module. This doesn't make as
such a module would in theory be inaccessible from the outside

If this causes compilation failures of released packages, we'll need
to turn this into a warning.
2017-06-09 12:45:05 +01:00
Jeremie Dimino b63718ada0 Fix error message about too many opam files 2017-06-08 14:11:31 +01:00
Jeremie Dimino 0a3abd96a1 Fix expansion of ROOT 2017-06-08 11:42:14 +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 c2f04a4963 Refactor action processing and avoid extra work 2017-06-08 11:26:21 +01:00
Jeremie Dimino 43c2710c43 Fix late expansion or ${ROOT} 2017-06-08 10:56:59 +01:00
Jeremie Dimino 06ab34981c Capture locations of string-with-vars generated inside jbuilder 2017-06-08 10:54:46 +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
Jeremie Dimino 5307a92ddc Do not allow (chdir ...) with dynamic directories
For instance (chdir ${read:foo} ...) is not allowed. This doesn't seem
really useful since we couldn't express the targets anyway and
supporting it complicate the code.
2017-06-08 10:03:11 +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
David Allsopp 843e5d864d Minor typo in ml_of_mli message 2017-06-07 14:15:30 +01:00
Jeremie Dimino 63ef644766 Fix #129 2017-06-07 11:15:15 +01:00
Jeremie Dimino 87f009a881 f --> map_cclibs + make the code build with --dev 2017-06-07 10:52:06 +01:00
David Allsopp bb527b1e38 Further MSVC C library import hacking (#119) (#127) 2017-06-07 10:49:15 +01:00
Jeremie Dimino 0e4f2dcd15 Handle dynamic targets in user actions 2017-06-06 15:42:10 +01:00
Jeremie Dimino 6a8a440c63 Wrap c_library_flags with -ldopt for ocamlmklib with msvc
This should fix #119
2017-06-06 10:55:38 +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
Jeremie Dimino 172467a7b6 Fix expansion of ${@} 2017-06-05 16:33:09 +01:00
Jeremie Dimino e5f27b8ba8 Small improvement 2017-06-05 16:33:09 +01:00
Jeremie Dimino 2b70e1930f Disable all warnings in ml files for mli only modules 2017-06-05 13:43:08 +01:00
Jeremie Dimino 11985e3948 Update the code to talk about scopes 2017-06-05 13:42:13 +01:00
Jeremie Dimino a392b59fcd copy-and-add-line-directive --> copy# 2017-06-05 12:11:39 +01:00
David Allsopp 7ec081419c Don't pass -g to cl; it doesn't like it! (#120)
The Microsoft C compiler doesn't recognise -g. For now, easier just not
to compile with any debugging information on MSVC.

Signed-off-by: David Allsopp <david.allsopp@metastack.com>
2017-06-05 11:40:27 +01:00
Jeremie Dimino f713c7ab98 Temporarily remove (foreach ...)
Currently (foreach ...) is too general and variables can be used
anywhere inside S-expressions.

We need to sort out how we are going to handle meta-programming first
as this might impact how we implement (foreach ...).

In any case, it's better not to have it in 1.0.0.
2017-06-02 18:26:13 +01:00
Jeremie Dimino a7446ec7d3 per_file --> per_module 2017-06-02 17:58:20 +01:00
Jeremie Dimino 1a8fc057f4 Remove a few unused things 2017-06-02 16:27:05 +01:00
Jeremie Dimino d8be1aa894 Add jbuild.mli 2017-06-02 15:00:50 +01:00
Jeremie Dimino b74544919a jbuild_types.ml --> jbuild.ml 2017-06-02 14:32:05 +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 29e9b37c61 Implement re_of_rei 2017-06-01 17:07:06 +01:00
Jeremie Dimino 5e06daa5b2 Rename (do ...) to (rule ...) 2017-06-01 16:53:55 +01:00
Jeremie Dimino 52df4a4af3 remove unused code 2017-05-31 17:19:43 +01:00
Jeremie Dimino 1cebba4bd7 Be slightly more clever when scanning the stanzas to generate install files
Instead of doing many List.filter, do one String_map.of_alist_multi
2017-05-31 17:08:32 +01:00
Jeremie Dimino a52c8a4cd7 Add location to a few errors 2017-05-31 16:49:54 +01:00
Jeremie Dimino ad817e7a34 Fixes 2017-05-31 11:24:27 +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 373e6c2524 Allow ${...:...} for in (do ...) and add more checks
Check that targets written by the user are a superset of inferred
targets.
2017-05-31 10:15:32 +01:00
Jeremie Dimino 81e6ebd09b Simplify inference 2017-05-30 17:39:23 +01:00
Jeremie Dimino acd1e3e571 Do not fail immediately when expanding actions and a program isn't found 2017-05-30 17:35:49 +01:00
Jeremie Dimino 4e7cb253e1 Add support for reading files from actions
- ${read:<filename>}        -> expand to the contents of the file
- ${read-lines:<filename>}  -> expand to the list of lines in the file
- ${read-strings:<filename> -> expand to the list of lines in the file,
  unescaped using OCaml escaping rules

Generalize ${!...} form
2017-05-30 17:02:45 +01:00
Jeremie Dimino a8a43e4b22 Add ${!^} and ${!@} and document them 2017-05-29 19:12:37 +01:00
Jeremie Dimino 116769724f Allow to use ${^} in actions in conjunction with (glob_files ...) and (file_recursively_in ...) 2017-05-29 18:53:54 +01:00
Thomas Refis a5af8efa0a Revert "Only build the toplevel module for wrapped libraries with odoc"
odoc is not ready for that as it turns out.

This reverts commit 5bd391e224.
2017-05-29 15:49:29 +01:00
Jeremie Dimino 5bd391e224 Only build the toplevel module for wrapped libraries with odoc 2017-05-29 14:52:20 +01:00
Jeremie Dimino 1d3341ed28 Add a (mkdir ...) action 2017-05-29 14:51:46 +01:00
Jeremie Dimino 85ae1c75e4 Hack for latest odoc 2017-05-29 14:28:07 +01:00
Jeremie Dimino 65150b4166 Add -debug-backtrace 2017-05-29 14:18:07 +01:00
Jeremie Dimino 9f8803af67 Add (modes ...) for executables 2017-05-29 14:18:07 +01:00
Thomas Refis b52d778d4c Fix .merlin generation: add all workspaces projects to merlin's source path
(otherwise "locate" doesn't work)
2017-05-29 13:22:24 +01:00
Jeremie Dimino c73b1f1fe3 Add a --no-buffer option
Following #107
2017-05-29 10:57: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
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
Jérémie Dimino 1e41feaf8a Add simplified version of rules 2017-05-29 07:51:52 +01:00
Jérémie Dimino 7c9dcbf284 Added deps/targets inference 2017-05-29 07:51:52 +01:00
Jérémie Dimino b9c9b19f0a Refactoring 2017-05-29 07:51:52 +01:00
Jérémie Dimino 73a4cef9f8 Move the context out of Action.t
And add it to the rule. It is never dynamic, so it is simpler this
way, we just set it in Super_context.add_rule.
2017-05-29 07:51:52 +01:00
Jérémie Dimino 7f0a2d7e12 Remove unused function 2017-05-29 07:51:52 +01:00
Jeremie Dimino 500f224098 Delete old odoc artifacts before running odoc 2017-05-26 18:34:49 +01:00
Jeremie Dimino 37d7131a11 Simplify hack for not deleting odoc files 2017-05-26 18:34:49 +01:00
Jeremie Dimino 35ba1bc0f1 Remove the dir field in Action.t
Simplify things for Build.progn
2017-05-26 18:34:49 +01:00
Jeremie Dimino 0a1f4f5658 Replace Build.and_... by Build.progn 2017-05-26 18:34:49 +01:00
Jeremie Dimino 23f00abf18 Update odoc rules 2017-05-26 18:34:49 +01:00
Jeremie Dimino d9165fc53e Memoize a computation in odoc.ml 2017-05-26 18:34:49 +01:00
Jeremie Dimino 76d637fa74 Fix dependencies 2017-05-26 18:34:49 +01:00
Jeremie Dimino 43f413a59a Support library indexes 2017-05-26 18:34:49 +01:00
Jeremie Dimino 7f8f4b23ee Start of odoc rules 2017-05-26 18:34:49 +01:00
Jeremie Dimino 60d09f7e27 Print background process failures when exiting 2017-05-26 17:30:34 +01:00
Jeremie Dimino 550a8d8f57 Fix #101 2017-05-26 17:23:49 +01:00
Jeremie Dimino 9f9660b91a Remove the global ppx_drivers variable in super_context.ml
Fix #100
2017-05-26 14:25:51 +01:00
Jeremie Dimino 1de95b9d81 Print the contents of OCAMLPARAM in the log 2017-05-26 14:07:21 +01:00
Jeremie Dimino f3cdbfa66f Fix Path.rm_rf
It didn't delete the toplevel directory
2017-05-26 11:37:10 +01:00
Richard Davison 91d03de221 Add clean subcommand (#89) 2017-05-26 11:32:32 +01:00
Jeremie Dimino 2e7140dfef Fix #86 2017-05-22 10:37:42 +01:00
Jeremie Dimino d01270757f Remove ocamllex/ocamlyacc from the context
They were unused and this prevent jbuilder to be used with
opam-cross-windows.

Fixes #75
2017-05-19 15:24:55 +01:00
Jeremie Dimino 4dd0de1723 Fix #72 2017-05-19 14:16:00 +01:00
Jeremie Dimino c6dac87ee9 Ignore all directories starting with '.' pr '_' 2017-05-19 12:36:06 +01:00
Jérémie Dimino 0a2157919c Split more long lines in makefiles 2017-05-19 08:27:21 +01:00
Jérémie Dimino 42cb733c6a Remove --debug-{actions,rules}
They are superseeded by 'jbuilder rules'
2017-05-19 08:27:21 +01:00
Jérémie Dimino 00ddd7f7a2 Improve formatting 2017-05-19 08:27:21 +01:00
Jérémie Dimino 0a98963293 fix 2017-05-19 08:27:21 +01:00
Jérémie Dimino fe30935fa2 Rename 'extract-makefile' to 'rules' 2017-05-19 08:27:21 +01:00
Jeremie Dimino d219020b2f added jbuilder extract-makefile 2017-05-18 19:05:01 +01:00
Jeremie Dimino a3ee81055d Refactor IO functions and fix invalid IOs in gen_rules 2017-05-18 17:12:32 +01:00
Jeremie Dimino 9df1bad58c Change an error into a warning
Otherwise this breaks the build of atd.
2017-05-18 16:50:53 +01:00
Jeremie Dimino a399d9df8a Declare dependencies on external library files
This way, when an external library is reinstalled, jbuilder knows to
rebuild things.

Currently, because the library dependencies transitive closures are
computed dynamically and jbuilder doesn't yet support dynamic targets,
every single rule has to depend on all the external files.

When jbuilder support dynamic targets, we can setup one alias per
external directory.

Tested the build of 97 Jane Street repository at once. No slow down
observed for the initial build.

Then a null build goes from ~1.5s to 2s. The test case is a bit
extreme so it's bot that bad given the benefits.
2017-05-18 13:52:35 +01:00
Jeremie Dimino 08af136c97 Fix another stupid bug 2017-05-17 15:24:09 +01:00
Jeremie Dimino 80792e4e74 Handle the alternative findlib directory layout
Some packages still use this, such as ocp-blah and llvm
2017-05-17 15:12:11 +01:00
Jeremie Dimino b2a9d6dc51 Add: jbuilder installed-libraries --not-available 2017-05-17 14:56:53 +01:00
Jeremie Dimino 1814fc4299 Much better for findlib packages not found 2017-05-17 14:56:53 +01:00
Jeremie Dimino 4621e554d2 Really ignore invalid findlib packages 2017-05-16 15:46:53 +01:00
Jeremie Dimino 60ad83c522 Improve opam parsing errors & use opam-file-format to extract the version 2017-05-16 14:47:52 +01:00
Jeremie Dimino f2a857f406 Fix Super_context.expand_and_eval_set
It declared its own dependencies as action dependencies rather than
rule dependencies
2017-05-16 12:19:18 +01:00
Jeremie Dimino bd62dc8306 Merge build_interpret functions 2017-05-15 15:15:20 +01:00
Jeremie Dimino 9a5bb0ca1f Compute dynamic dependencies correctly for memoized arrows 2017-05-15 15:09:56 +01:00
Jeremie Dimino 648b2b2990 Revert some changes:
- Make targets explicit b7ad08df84.
- Get rid of Vfile      e73fd90b65.

Without vfile we need some new concepts to avoid parsing the requires
file multiple times and with vfile it's annoying to specify the
dependencies by hand.

Will leave that for future work. Just use memoize where it make sense,
for instance when we read the result from only the current directory
(for instance the ocamldep stuff).
2017-05-15 14:58:37 +01:00
Rudi Grinberg 5adfe2d668 Ignore local switch directory (#77)
This makes jbuilder usable for building projects that use a local switch
2017-05-15 10:30:02 +01:00
Jérémie Dimino be3593e449 Distinguish rule dependencies from action dependencies 2017-05-15 09:37:46 +01:00
Jérémie Dimino b7ad08df84 Make targets explicit 2017-05-15 09:37:46 +01:00
Jérémie Dimino b6b417e640 simplification 2017-05-15 09:37:46 +01:00
Jérémie Dimino e73fd90b65 Get rid of Vfile
replace it by just memoize
2017-05-15 09:37:46 +01:00
Jérémie Dimino f5192122f8 add Build.memoize 2017-05-15 09:37:46 +01:00
Jeremie Dimino dd79bdd8d1 Suffix all alias files, to avoid clashes with doc 2017-05-15 09:37:46 +01:00
Jeremie Dimino 87c958f2e0 Add Build.if_file_exists 2017-05-15 09:37:46 +01:00
hhugo c880cd3e2d disable warning 60 with --dev 2017-05-14 13:06:22 +01:00
Jeremie Dimino 4c9f894fe4 fix stupid bug 2017-05-10 16:44:01 +01:00
Jeremie Dimino 76db4d5641 Use OCAML_COLOR and stop using OCAMLPARAM when possible 2017-05-10 16:31:44 +01:00
Jeremie Dimino b514644f9b Revert "Add support for hooks"
This reverts commit c937dc9183.
2017-05-09 15:11:09 +01:00
Jérémie Dimino c937dc9183 Add support for hooks 2017-05-09 08:18:10 +01:00
Jeremie Dimino add2a063c0 Detect the package name as topkg-jbuilder does 2017-05-08 16:56:21 +01:00
Jeremie Dimino 221baefb81 Make subst add the version to the opam file 2017-05-08 16:56:21 +01:00
Jeremie Dimino 61f0f8fd0e Fix bootstrap 2017-05-08 16:56:21 +01:00
Jeremie Dimino 6d0c8198eb Substitute watermarks for jbuilder itself 2017-05-08 16:56:21 +01:00
Jeremie Dimino 87df38d1f6 Fix call to git describe 2017-05-08 16:56:21 +01:00
Jeremie Dimino dce491e661 Add a subst command for watermarking files 2017-05-08 16:56:21 +01:00
Jeremie Dimino 4130bc2f63 Add support for ${version:<package>} 2017-05-05 12:26:56 +01:00
Jeremie Dimino ef6be544a3 Keep the package context after parsing 2017-05-05 11:21:46 +01:00
Jeremie Dimino fbe0810156 Improve location of errors for mispelled package in jbuild files 2017-05-05 10:59:07 +01:00
Jeremie Dimino f017e810d8 Remove some dead code
vjs is mostly unused now given that Jane Street jbuild files are
automatically rewritten. We keep the Vjs version though, just in case.
2017-05-02 13:34:52 +01:00
Jeremie Dimino b73e672cad Move js_of_ocaml to Buildable 2017-05-02 13:30:58 +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
Rudi Grinberg afce8c7f4f Specify package for aliases
Useful for running tests for a specific package
2017-05-02 09:57:03 +01:00
Jeremie Dimino 416d4c6ead Move rules for module compilation in their own file 2017-04-28 15:13:43 +01:00
Jeremie Dimino a8c2dcc928 Move expand_and_eval_set to Super_context 2017-04-28 15:01:19 +01:00
Jeremie Dimino 5f270372bf Move Merlin rules to their own file 2017-04-28 14:54:16 +01:00
Jeremie Dimino 3a266c686e Cleanup lib stuff 2017-04-28 14:50:24 +01:00
Jeremie Dimino 130cadf855 Move pp stuff to Super_context.PP 2017-04-28 14:40:33 +01:00
Jeremie Dimino 17ae22295d Move Action_interpret to Super_context 2017-04-28 14:24:02 +01:00
Jeremie Dimino c6080880b3 Move ocamldep stuff to Ocamldep 2017-04-28 14:19:21 +01:00
Jeremie Dimino 6a40b7602c Move Dep_conf_interpret to Super_context 2017-04-28 14:01:47 +01:00
Jeremie Dimino 32c20cc561 Move var expansions to Super_context 2017-04-28 13:53:44 +01:00
Jeremie Dimino c18eabec72 Move a few more things to Utils and document them 2017-04-28 13:26:16 +01:00
Jeremie Dimino 1b6bc01a2d Split out Ocaml_flags 2017-04-28 13:19:33 +01:00
Jeremie Dimino c7add98ea6 Add a new Super_context module
Moved most of the global values computed at the beginning of
Gen_rules.Gen to Super_context.t. This will allow to split
gen_rules.ml into multiple files.
2017-04-28 11:58:41 +01:00
Jeremie Dimino d1d51595d2 Remove overlays for Mode and Cm_kind in Gen_rules 2017-04-28 10:40:09 +01:00
Jeremie Dimino 9498cb7013 Improve the error message for the last commit 2017-04-26 15:10:59 +01:00
Jeremie Dimino 2c124a0221 Detect conflicts between internal and external libraries 2017-04-26 15:04:32 +01:00
Jeremie Dimino 30ef4012e4 use code_errorf in Map.of_alist_exn 2017-04-26 13:41:10 +01:00
Jeremie Dimino 47d62fec04 typo 2017-04-26 13:38:28 +01:00
Jeremie Dimino 89cdd70563 Check for inconsistent (libraries ...) fields
Better fix for for #62
2017-04-26 13:36:52 +01:00
Jeremie Dimino 43572595b4 Detect clauses that are always false in (select ...) forms 2017-04-26 13:21:59 +01:00
Jeremie Dimino 05581ed8bc Don't crash when a dependency is duplicated
Fix #62
2017-04-26 13:00:10 +01:00
Jeremie Dimino 83f686a821 Hint for mistyped targets 2017-04-25 16:22:17 +01:00
Jeremie Dimino ee43c2718f Environment variable names are not case sensitive on Windows 2017-04-24 12:53:18 +01:00
Jeremie Dimino 229e7fa883 A couple of fixes for Windows
- open files in text mode when reading lines
- open files used for redirections with O_SHARE_DELETE
2017-04-21 17:22:41 +01:00
Rudi Grinberg 66f973cd4c Add Reason support (#58)
jbuilder now recognizes .re/.rei files as modules and pass them through refmt
2017-04-20 16:41:16 +01:00
Jeremie Dimino de0f65b4f4 Remove hard-coded knowledge of a a few specific ppx rewriters 2017-04-17 13:48:52 +01:00
Jeremie Dimino 238c22f3b8 Remove hardcoded PORTABLE_INT63 2017-04-17 13:35:42 +01:00
Jeremie Dimino 31922a590f Make sure the action working directory exist 2017-04-17 13:35:05 +01:00
Jeremie Dimino 2f4ec1c281 refactoring 2017-04-17 13:20:21 +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 eb68c98f01 remove unused function 2017-04-10 10:10:49 +01:00
Jeremie Dimino d948edbc4c Add a (no_dynlink) field 2017-04-10 10:10:15 +01:00
Jeremie Dimino cc7ea35a14 Split the building of the .so and .a when needed 2017-04-10 10:10:15 +01:00
Jeremie Dimino d8f7d77a75 Don't generate an "exists_if ..." line in META files
This is useless sine the jbuild is auto-generated
2017-04-10 10:10:15 +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 4c3036b3cc Don't fail when opam return the same envirnonemt variable several times
Instead, print a warning and take the last bindings.

Fixes #46
2017-03-31 17:45:38 +01:00
Jeremie Dimino 83c1a6f5bd Fix compat with 4.06 2017-03-31 17:31:55 +01:00
Jeremie Dimino a7dbc12bac Sandbox different actions in different directories 2017-03-31 15:29:47 +01:00
Jeremie Dimino ffa1662ce9 Sandbox the build of the alias module with 4.02
To prevent the compiler from reading the cmi of the aliased modules.
2017-03-31 15:15:54 +01:00
Jeremie Dimino b9976773a3 Add support for sandboxing 2017-03-31 15:06:53 +01:00
Jeremie Dimino 21b29b0cb6 Refactor the job printing code
Fix #50
2017-03-31 13:44:53 +01:00
Jeremie Dimino 99b0d94335 Fixed the implementation of Filename.{split_,}ext 2017-03-31 13:34:30 +01:00
Jeremie Dimino d62429455b Add -keep-locs to the dev mode
Related to #44
2017-03-31 11:01:52 +01:00
Jeremie Dimino be75c8a4c9 Use -short-paths by default in dev-mode
Related to #44
2017-03-30 18:29:23 +01:00
Stephen Dolan b5ae1b1f52 Quieter output (#40)
Makes the output quieter by default and add a `--verbose` argument. Print a message when waiting for background jobs to finish only it it takes more than 0.5 seconds.
2017-03-30 17:36:58 +01:00
Jeremie Dimino d5b5322f12 Fix a bug in the interpretation of META files
Before this commit, when there was more than one applicable
assignment, the one with the lowest number of formal predicates was
selected instead of the one with the biggest number of formal predicates
2017-03-29 17:47:17 +01:00
Jeremie Dimino acb54677d4 Ignore test/ and example/ during bootstrap 2017-03-29 16:51:48 +01:00
Jeremie Dimino 1dda1179aa Add some doc in Path 2017-03-28 14:50:04 +01:00
François Bobot 5cca590e34 Don't use color feature for ocaml 4.02.3 2017-03-27 18:31:26 +01:00
François Bobot 2bf15067cb Remove comment for 4.02.3 2017-03-27 18:31:26 +01:00
Jeremie Dimino c48e90e357 Don't pass specific arguments when not using ppx_driver.runner
Fix #37
2017-03-27 14:31:00 +01:00
Jeremie Dimino 8e64aa0990 Lookup bash in the PATH
Closes #36
2017-03-24 11:04:24 +00:00
Jeremie Dimino 37b1125f03 Remove some unused functions 2017-03-23 10:45:09 +00: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 48970caca3 Make sure the build of jbuilder doesn't call ocamlfind or opam 2017-03-22 08:19:26 +00:00
Jeremie Dimino 0c6b30efea tweaks for specific ppxs 2017-03-21 17:22:29 +00:00
Jeremie Dimino d2b8acc3b7 refactoring 2017-03-21 17:17:25 +00:00
Jeremie Dimino a1e898af5b Better error when plugins don't call the send function 2017-03-21 14:03:33 +00:00
Jeremie Dimino 9a8483c615 Give ocamlfind precedence over opam
If ocamlfind is present, don't try to call `opam config var lib`. The
previous behavior was breaking Facebook builds.

Also add ocamlfind as an optional dependency, to avoid race conditions
when installing ocamlfind in parallel.
2017-03-21 10:26:36 +00:00
Jeremie Dimino 34722a921a Ignore all errors while running `ocamlfind printconf path` 2017-03-20 14:34:28 +00:00
Jeremie Dimino 48ac99797e Improve error messages about invalid/missing pkg.opam files 2017-03-17 10:51:22 +00:00
Jeremie Dimino 6d1bb607c9 Fix #25 2017-03-15 15:44:27 +00:00
Jeremie Dimino 3b0c6403ee Fix a bug in Findlib.available
Fix #24
2017-03-15 12:07:20 +00:00
Jeremie Dimino 34a8951292 Improve dependency path printing 2017-03-15 11:49:31 +00:00