Commit Graph

1443 Commits

Author SHA1 Message Date
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
Jeremie Dimino 0dd24399ca Ignore opam files in ignored sub-trees 2017-03-15 11:41:44 +00:00
Jeremie Dimino bf4a4ba5f9 Add a regression test for #20 2017-03-15 11:13:49 +00:00
Jeremie Dimino dac70f4d72 Fix generation of @canonical tags 2017-03-15 10:44:55 +00:00
Jeremie Dimino 6cf93d69b5 Fix a bug in incremental compilation
If a rule had no dependencies and targets where missing, it wasn't
re-run.

Refactor the code and fix this bug.
2017-03-15 10:43:03 +00:00
Jeremie Dimino ec6b89ea11 Improve errors for ${lib:...} 2017-03-15 09:46:42 +00:00
Jeremie Dimino 2a5dc053fb Fix sexp_of_t (Update_file ...) 2017-03-15 09:15:47 +00:00
Jeremie Dimino e7b543e7cb Don't scan the tree a second time for files_recursively_in 2017-03-15 09:10:22 +00:00
Jeremie Dimino a04b0c4dcc Improve 'required_by ...' messages 2017-03-15 08:59:00 +00:00
Jeremie Dimino c437069fff Improve package not found errors 2017-03-14 15:57:22 +00:00
Jeremie Dimino 6ae036a318 Fix fix for #20 2017-03-14 08:02:01 +00:00
Jeremie Dimino 132ddca42b generate @canonical doc tags 2017-03-13 14:08:15 +00:00
Jeremie Dimino 020da39542 as-ppx.exe --> ppx.exe 2017-03-13 13:36:01 +00:00
Hugo Heuzard 63462fd452 Fix deps with multiple glob_files 2017-03-13 10:13:39 +00:00
Jérémie Dimino 1dcf38af93 Fix Path.extract_build* functions when applied on the build_dir itself
This should fix #20
2017-03-13 08:53:41 +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
Jeremie Dimino 99d7a26f28 Fix previous commit 2017-03-10 16:32:08 +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 df7658914d Fix a bug where the findlib search path contained duplicates 2017-03-10 15:35:43 +00:00
Jeremie Dimino d959b0f928 Add a Log module and print out the context in the log file 2017-03-10 12:32:27 +00:00
Jeremie Dimino 563cc6059c Add Context.sexp_of_t 2017-03-10 11:22:01 +00:00
Jeremie Dimino 629b4d0044 Use Path.absolute for OCAML_TOPLEVEL_PATH 2017-03-10 10:57:09 +00:00
Jeremie Dimino 3cb0372f8b Force the recording of backtraces 2017-03-10 10:53:34 +00:00
Jérémie Dimino 74e015923a Ignore <package>.opam when <package> is empty 2017-03-09 06:41:42 +00:00
Jeremie Dimino 6ac0200d95 Fix the interpretation of inside actions 2017-03-08 15:28:32 +00:00
Jeremie Dimino 8f78118ff5 Fix error message printing format syntax 2017-03-08 15:13:33 +00:00
Jeremie Dimino 7e36b3cd86 Add self_build_stubs_archive to v1 2017-03-07 13:21:54 +00:00
Jeremie Dimino d5d861b40c Support architectures without natdynlink 2017-03-07 11:36:59 +00:00
Jeremie Dimino 3db4514d3a Delete pending targets when a command fails 2017-03-07 10:14:16 +00:00
Jeremie Dimino 427e8582c0 Make sure migrate_driver_main comes last 2017-03-07 09:50:38 +00:00
Jeremie Dimino 18e3530c0a Don't generate -embed-errors for merlin 2017-03-07 09:39:14 +00:00
Jeremie Dimino c848e6ae97 Print a message when waiting for jobs 2017-03-07 09:34:16 +00:00
Jeremie Dimino 54197cc70d Pass -embed-errors=false to ppx_driver 2017-03-06 16:18:51 +00:00
Jeremie Dimino 78e47bafa8 Don't save the db if _build doesn't exist 2017-03-06 15:33:03 +00:00
Jeremie Dimino cac1dc0e3e fixes 2017-03-06 15:14:57 +00:00
Jeremie Dimino 7850bf67f5 Write_file --> Update_file 2017-03-06 14:34:53 +00:00
Jeremie Dimino da43937663 Allow arbitrary flags in (pps ...) forms 2017-03-06 13:54:08 +00:00
Jeremie Dimino a26b787456 Fix expansion of user actions 2017-03-06 12:22:44 +00:00
Jeremie Dimino a07a9a84ec Use more standard command line options for ppx drivers 2017-03-06 11:59:21 +00:00
Jeremie Dimino df883bef75 Fix Build.and_create_file 2017-03-06 10:41:51 +00:00
Jeremie Dimino f21217dfbc Improving errors when an alias is not found 2017-03-06 10:30:57 +00:00
Jeremie Dimino 35ac2e84ed Switch to ocaml-migrate-parsetree.driver-main 2017-03-06 10:22:00 +00:00
Jérémie Dimino 9423e5ae74 Avoid stupid warning about trigraph on OSX 2017-03-05 21:07:40 +00:00
Jérémie Dimino 0b7d664f49 Don't recompile everything when the .merlin changes 2017-03-05 20:58:51 +00:00
Jérémie Dimino fb6d135de6 Support ppx in .merlin files 2017-03-05 13:16:25 +00:00
Jérémie Dimino 95eca26bf0 Don't delete targets before executing a rule
At the moment, this breaks incremental builds
2017-03-05 12:33:54 +00:00
Jérémie Dimino 292f423cda Build.t doesn't need Future to be interpreted 2017-03-05 12:11:48 +00:00
Jérémie Dimino ca4b6fbf41 All IO must go through Build 2017-03-05 12:04:19 +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 05830fc809 Pass common flags to merlin 2017-03-05 10:32:04 +00:00
Jérémie Dimino d58528d14c Better error message when the ppx driver is missing 2017-03-05 10:17:35 +00:00
Jérémie Dimino ba80202747 Implem of Build.progn 2017-03-05 10:05:05 +00:00
Jérémie Dimino 9013a836f0 Check that rules do produce the expected targets 2017-03-05 09:53:28 +00:00
Jérémie Dimino cef3847977 Do no require ppx_driver 2017-03-05 09:38:39 +00:00
Jérémie Dimino c03a4fb7df Fix 2017-03-03 17:10:15 +00:00
Jeremie Dimino a188fcacf4 Start incremental compilation 2017-03-03 15:26:14 +00:00
Jeremie Dimino 87fa4c080a Fix the use of Path.reach for program names 2017-03-03 13:53:34 +00:00
Jeremie Dimino 65f06e7454 fix 2017-03-03 13:47:51 +00:00
Jeremie Dimino 470d791bac fix 2017-03-03 13:23:44 +00:00
Jeremie Dimino c3c3e9e9b5 Force users to write (bash ...) when they want it 2017-03-03 13:18:52 +00:00
Jeremie Dimino e300ca0f16 Simplify actions
Make Bash a normal action
2017-03-03 12:59:52 +00:00
Jeremie Dimino 581c63f6ca Added --debug-action 2017-03-03 12:46:54 +00:00
Jeremie Dimino adf423a595 Change the rule signature
Now rules are arrows of type: (unit, Action.t) Build.t

They don't execute command directly, but instead build a serializable
action to execute.
2017-03-03 12:27:34 +00:00
Jeremie Dimino 2967987356 add a few more actions 2017-03-03 09:18:03 +00:00
Jeremie Dimino 987d437a99 Revert name change 2017-03-03 08:57:20 +00:00
Jeremie Dimino cd359538b0 simplify 2017-03-03 08:47:58 +00:00
Jeremie Dimino 304e4d9a7a prepare for change 2017-03-03 08:18:10 +00:00
Jeremie Dimino 4fa0844e42 Remove build-package in favor of --only-packages 2017-03-02 18:21:19 +00:00
Jeremie Dimino 591bc9f724 Fix the setting of CAML_LD_LIBRARY_PATH 2017-03-02 17:40:16 +00:00
Jeremie Dimino a1bcf263c3 Fix for 4.04 2017-03-02 17:01:56 +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 2628eba306 Don't install jbuilder as a library
The API is not stable at all, so let's not do it until the Jenga
bridge is ready
2017-03-02 14:53:33 +00:00
Jeremie Dimino d858bfdda9 Make vjs closer to v1 to prepare for the next Jane Street release 2017-03-02 14:50:44 +00:00
Jeremie Dimino 16bd433e4e Do not compute external library dependencies eagerly 2017-03-02 11:34:13 +00:00
Jeremie Dimino 2183a6f2d8 Remove support for (object_public_name ...)
Installing libraries from an executables stanza is just weird.
2017-03-02 10:06:05 +00:00
Jeremie Dimino 97de72c8dd Improve the external-lib-deps command 2017-03-01 19:19:43 +00:00
Jeremie Dimino 27e44cd72b Fix a problem when opam files are in sub-directories 2017-03-01 18:07:16 +00:00
Jeremie Dimino b80b3c20ce Install the non preprocessed modules 2017-03-01 17:27:25 +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
Jeremie Dimino c16fac59ed Fix ocamlyacc rule 2017-03-01 15:18:09 +00:00
Jeremie Dimino 6f2a10c908 Install libexec files in sub-directories as well 2017-03-01 15:11:50 +00:00
Jeremie Dimino c999039aa7 Install sub-libraries into sub-directories
Otherwise we have a problem when two libraries of the same package
define the same module.
2017-03-01 15:03:09 +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 4ee2e74131 Make build-package work 2017-03-01 13:25:18 +00:00
Jeremie Dimino ddd7f182f1 Extend MANPATH in 'jbuilder exec' 2017-03-01 12:56:31 +00:00
Jeremie Dimino c88bf33131 Add jbuilder exec 2017-03-01 12:09:57 +00:00
Jeremie Dimino d5f78a1462 Clean the _build/install directory as well 2017-03-01 11:39:41 +00:00
Jeremie Dimino 56f6e5bca3 Install from the symlink directory 2017-03-01 11:38:02 +00:00
Jeremie Dimino c3228ee95e fix ocamllex/ocamlyacc rules 2017-03-01 11:34:51 +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
Jérémie Dimino d627744513 Fix the interpretation of 2017-02-28 23:26:53 +00:00
Jérémie Dimino 157ecaab60 Resolve path properly in actions 2017-02-28 23:23:51 +00:00
Jeremie Dimino 2e7d592f66 implement the manual properly for (install ...) stanzas 2017-02-28 18:17:15 +00:00
Jeremie Dimino 55405f7f25 Rework the readme 2017-02-28 17:20:41 +00:00
Jeremie Dimino 0b30f795b2 fix guess_modules 2017-02-28 15:49:02 +00:00
Jeremie Dimino fad2873ad7 Update warning for .mli only modules 2017-02-28 13:20:35 +00:00
Jeremie Dimino 951132023c Allow .mli only modules
Closes #9
2017-02-28 11:11:19 +00:00
Jeremie Dimino 98c083db21 Uncomment check for executable names 2017-02-28 10:37:10 +00:00
Jeremie Dimino dc5c5851ff Execute preprocess commands using the system shell 2017-02-28 10:32:57 +00:00
Jérémie Dimino 19dae96f1a Simplify ocamllex/ocamlyacc rules
They are tricky and don't work properly
2017-02-28 07:27:32 +00:00
Jérémie Dimino ac372ce63a Allow to use installed libraries in jbuild plugins 2017-02-28 06:31:02 +00:00
Jérémie Dimino 0462d4a11f Remove dependency Named_artifacts --> Context 2017-02-28 06:03:20 +00:00
Jérémie Dimino 2ee522be52 Add a Findlib.t in the context 2017-02-28 06:01:27 +00:00
Jérémie Dimino 9123508e43 Simplify jbuild.ml wrappers 2017-02-28 05:38:30 +00:00
Jeremie Dimino bad68218b9 Add a --workspace option 2017-02-27 15:07:37 +00:00
Jeremie Dimino ed0e7e3fc3 Add a few more actions
Just enough to handle the common cases.
2017-02-27 15:07:37 +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
Jeremie Dimino df866a5840 Refactor actions 2017-02-27 13:34:16 +00:00
Jeremie Dimino eea483191f Typo 2017-02-27 11:58:06 +00:00
Jeremie Dimino bd9033f9bb Allow 'ocamlfind printconf path' to fail 2017-02-27 11:38:11 +00:00
Jérémie Dimino 595590d9c8 Fix a small problem in findlib.ml 2017-02-27 08:45:00 +00:00
Jérémie Dimino ecdbedc03d Print signal names 2017-02-27 08:43:18 +00:00
Jérémie Dimino 6b4e7b31d8 cleanup 2017-02-26 21:49:41 +00:00
Jérémie Dimino e52cca99cb Do not copy over .install files 2017-02-26 21:39:03 +00:00
Jérémie Dimino 27a299437d 4.02.3 compatiblity 2017-02-26 21:28:30 +00:00
Jérémie Dimino 304d7becbc Allow to specify which context for merlin 2017-02-26 20:53:32 +00:00
Jérémie Dimino b8c35156e7 Fix command line printing when there is a redirection 2017-02-26 19:51:42 +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 4227e756bd Move actual parsing of jbuilds to Gen_rules 2017-02-25 18:21:23 +00:00
Jérémie Dimino c6b2169037 Refactor S-expression parsing 2017-02-25 18:03:56 +00:00
Jérémie Dimino af82f587e4 Fix installion when there are multiple contexts 2017-02-25 14:15:52 +00:00
Richard Davison 2c7bfe4167 Automatically generate .merlin file (#2) 2017-02-25 13:53:37 +00:00
Jérémie Dimino 01e76a64eb Don't force to have a default context 2017-02-25 02:38:41 +00:00
Jérémie Dimino 6bb3f6a7b5 Colorize Output[<id>] 2017-02-25 01:49:20 +00:00
Jérémie Dimino 0ba7299117 Handle installation into multiple contexts at once 2017-02-25 01:45:41 +00:00
Jérémie Dimino 9fe0e9c87d Improve alias management 2017-02-25 01:33:37 +00:00
Jérémie Dimino 7538fd8263 Allow to redefine the default context 2017-02-25 00:28:10 +00:00
Jérémie Dimino 677b9e1e06 Initial support for build contexts 2017-02-25 00:18:01 +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 24ac055511 Avoid loading findlib packages more than once 2017-02-24 16:29:08 +00:00
Jeremie Dimino e3722a922a Put alias files in a dedicated directory 2017-02-24 15:58:54 +00:00
Jeremie Dimino 437a4fa5d7 added install/uninstall commands 2017-02-24 15:41:52 +00:00
Jeremie Dimino a3346384c4 remove an assert false 2017-02-24 14:23:17 +00:00
Jeremie Dimino 21cd4d1a9a Fix order of chdir and open in Future 2017-02-24 13:48:23 +00:00
Jeremie Dimino dce615a559 Fix build of the aliases module 2017-02-24 13:42:53 +00:00
Jeremie Dimino 4bdac39dd4 fix use of labels 2017-02-24 13:08:37 +00:00
Jeremie Dimino e148f75ee4 add an install alias 2017-02-24 12:54:51 +00:00
Jeremie Dimino 6080929ede Fix colors in bootstrap mode 2017-02-24 12:20:07 +00:00
Jeremie Dimino 9c6e367089 Add a development mode and cleanup the code 2017-02-24 12:19:02 +00:00
Jeremie Dimino 4f161894ff colorize output filenames 2017-02-24 12:02:57 +00:00
Jeremie Dimino b3cf69c3d8 improvve coloration of program 2017-02-24 11:54:53 +00:00
Jeremie Dimino a3cd58de5d A bit more colors 2017-02-24 11:38:50 +00:00
Jeremie Dimino 03f788a0fa a bit more colors 2017-02-24 11:16:55 +00:00
Jeremie Dimino 9b6b6b11f7 drop support for (preprocess metaquot) 2017-02-24 10:50:43 +00:00
Jeremie Dimino 0f28c8bba0 Refactor Sexp.of_sexp_error API 2017-02-24 10:49:27 +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 e2a607af6e Parse and interpret (jbuilder_version ...) stanzas 2017-02-24 10:03:39 +00:00
Jeremie Dimino f9c80160f1 Implement versionned jbuild parsers 2017-02-24 09:41:32 +00:00
Jeremie Dimino 3fd14a8f28 Factorize jbuilds a bit 2017-02-23 18:46:12 +00:00
Jeremie Dimino 7d10b0e983 Make sexp record parsing more composable 2017-02-23 18:33:37 +00:00
Jeremie Dimino ee7ab05d9e Better for user written/generated META files 2017-02-23 17:34:11 +00:00
Jeremie Dimino a257da3f94 Fix path of install files 2017-02-23 16:55:42 +00:00
Jeremie Dimino f2e1f7d2ce Check that packages are correctly specified in jbuilds 2017-02-23 16:47:25 +00:00
Jeremie Dimino fe929a07d7 Don't require packages to be defined at the root
To match the manual
2017-02-23 15:59:44 +00:00
Jeremie Dimino 331b9dc14e Include generated files when looking for odig doc files 2017-02-23 14:16:29 +00:00
Jeremie Dimino 75335af4bc Implement odig conventions properly 2017-02-23 13:52:36 +00:00
Jeremie Dimino 3716f87285 Add a runtest command
Closes #3
2017-02-23 13:17:38 +00:00
Jeremie Dimino 087c9570e4 Fix recursive aliases 2017-02-23 13:15:36 +00:00
Jeremie Dimino d696bd113b Hack to force OCaml to use colors when possible 2017-02-23 12:12:02 +00:00
Jeremie Dimino aa5c4078f7 Improve rendering of errors 2017-02-23 11:55:14 +00:00
Jeremie Dimino 901d9acc2a Don't mangle the output of commands and keep a log file 2017-02-23 11:45:03 +00:00
Jeremie Dimino e75f0e4455 Interpret extra_disabled_warnings 2017-02-23 10:43:51 +00:00
Jeremie Dimino 358c9ecbc6 Implement targets resolution
Prepend _build/default only when a path is not a direct target. This
way "jbuilder build package.install" does produce the
"package.install" file
2017-02-23 10:04:32 +00:00
Jeremie Dimino 593bd4c1c1 Disable colors when compiling from emacs 2017-02-23 10:04:23 +00:00
Thomas Refis f00fd49f0b 114.33+05 2017-02-21 17:13:30 +00:00
Jeremie Dimino 193f8d5238 moved cmdliner and re to vendor/ 2017-02-21 15:09:58 +00:00
Rudi Grinberg 428c0b5368 Implement (alias ...) stanzas (#7) 2017-02-21 14:52:26 +00:00
Rudi Grinberg ac6cb2360a First cut cmdliner support (#5)
Import the sources of cmdliner and rewrite the CLI of jbuilder
2017-02-20 15:51:03 +00:00
Jeremie Dimino ae6b09b180 114.30+68 2017-02-02 10:31:36 +00:00
Jeremie Dimino 1c1a08ec54 114.29+68 2017-01-26 10:53:37 +00:00
Jeremie Dimino 5f239a349f 114.29+19 2017-01-25 15:41:22 +00:00
Jeremie Dimino 42680ee945 114.29+19 2017-01-24 16:02:53 +00:00
Jeremie Dimino 716f30c3d3 114.28+32 2017-01-19 13:19:13 +00:00
Jeremie Dimino 9e4a83bf48 add support for c_library_flags 2017-01-06 17:18:36 +00:00
Jeremie Dimino 614dbc6f6b Setup copy rules for all source files
This is cleaner and allow dependencies on files that do not
appear in static deps or targets.

With this patch, one can now build all JS packages at once.
2016-12-31 15:12:39 +00:00
Jeremie Dimino 875df08235 add deps on header files & stubs 2016-12-31 13:26:29 +00:00
Jeremie Dimino 11c61b3234 114.20+69 2016-12-23 15:32:23 +00:00
Jeremie Dimino ea888074b0 We need the .a to build the .cmxs
Should fix janestreet/re2#17
2016-12-19 11:47:24 +00:00
Jeremie Dimino 079d64f48c 114.20+69 2016-12-16 12:56:34 +00:00
Jeremie Dimino 09503447b9 114.20+69 2016-12-16 10:58:59 +00:00
Jeremie Dimino 405971694c 114.20+69 2016-12-15 16:54:46 +00:00
Jeremie Dimino e054ce4d71 114.20+69 2016-12-15 13:00:30 +00:00
Jeremie Dimino 2357fa0799 114.20+69 2016-12-15 11:20:46 +00:00
Jeremie Dimino 0eacc5d546 Fix the -dlllib option passed to ocamlc
Related to janestreet/base#5
2016-12-09 08:36:28 +00:00
Jeremie Dimino b80929774a fix 2016-12-07 17:05:53 +01:00
Jeremie Dimino 0dd0511581 handle exceptions properly 2016-12-07 16:55:47 +01:00
Jeremie Dimino f7b51ed1a0 follow opkg rules 2016-12-07 16:09:49 +01:00
Jeremie Dimino 0f771a004b compile everything with -no-alias-deps 2016-12-03 17:58:38 +01:00
Jeremie Dimino be0eda3026 pass -dump-ast to ppx driver 2016-12-03 17:58:38 +01:00
Jeremie Dimino cb72b1cfca fix race condition when .mli is missing
closes janestreet/base#4
2016-12-03 17:57:53 +01:00
Jeremie Dimino cdcd7e907f 114.20+69 2016-12-02 13:54:32 +00:00
Jeremie Dimino d3125bd4a8 handle findlib properly 2016-11-13 17:05:55 +00:00
Jeremie Dimino b95fe287cf simple query 2016-11-13 12:40:31 +00:00
Jeremie Dimino 567dac033f fix meta parsing 2016-11-13 12:37:18 +00:00
Jeremie Dimino a71db86d88 better error reporting 2016-11-13 12:32:12 +00:00
Jeremie Dimino 5a13387210 rename main 2016-11-13 12:26:21 +00:00
Jeremie Dimino b3433c5943 add internal command 2016-11-13 12:25:45 +00:00
Jeremie Dimino 24bb677ed2 fixes 2016-11-13 11:27:31 +00:00
Jeremie Dimino 583b55f527 findlib support 2016-11-13 11:13:47 +00:00
Jeremie Dimino de3314049f added meta.mli 2016-11-13 10:03:07 +00:00
Jeremie Dimino c9fddcbb77 meta parser 2016-11-13 10:01:32 +00:00
Jeremie Dimino 6039e16258 added meta 2016-11-12 11:48:24 +00:00
Jeremie Dimino 0a29ae3749 more work 2016-11-03 16:44:09 +00:00
Jeremie Dimino 93b5d9bdb9 initial import 2016-10-30 19:07:53 +00:00