Commit Graph

2031 Commits

Author SHA1 Message Date
Anil Madhavapeddy 23576a4832 configurator: add write_lines function
The `write_flags` only works with `(:include` directives, and it
is also useful to be able to write a list of lines so that the
discovered information can be used in variable expansion actions.

For example, ocaml-yaml discovers CFLAGS and then directly has
`(run ${CC} ${read-lines:cflags})` actions that use this new
write_lines function to list cflags instead of s-expressions.
They must be line-by-line or else variable expansion doesnt work
since CFLAGS contain spaces.

Signed-off-by: Anil Madhavapeddy <anil@recoil.org>
2018-07-09 00:00:32 +07:00
Jérémie Dimino e7bc884d26
Improve compatibility of Configurator.V1.write_flags (#967)
Make sure the produced file will round-trip with both the Dune and
Jbuilder lexical conventions.

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-08 15:26:18 +01:00
Rudi Grinberg 1b53107b66
Merge pull request #956 from rgrinberg/lowercase-builtin-vars
Lowercase builtin vars
2018-07-08 18:17:13 +07:00
Rudi Grinberg 78370d3983 Rename test not to use outdated form term
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 17:30:47 +07:00
Rudi Grinberg a2153539e1 Fix error messages when percent macros are used incorrectly
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 17:27:35 +07:00
Rudi Grinberg ccabeb7181 Hack to fix printing of errors
This is a temporary hack until we have a real sexp type

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 17:25:26 +07:00
Rudi Grinberg a24b55ed81 Add error for %{read:x} in wrong place
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 17:18:38 +07:00
Rudi Grinberg bfd246c667 Rename Kind to Var in Pform
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 1fb3af8ae8 Rename var to pform
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 1a9895aec4 Consistent naming for vars and forms
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 7cb068d1eb Improve error messages for all forms
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 813b8d9dbc Use correct syntax for error
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 647f68dfe9 Move Super_context.Var into own module
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 1b918ecc74 Improve error message for renamed forms
Don't include the payload in these messages

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 78140ca235 Remove the targets helper function
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg c244fa9d08 Share error messages for renamed/since/deleted etc.
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg f95c9e01d5 Simplify some checks with an is_form function
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 44dc0394b8 s/Nothing/No_info/
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 5f783be1b2 Use maps instead of hash tables for variable lookup
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 7b05fc34b6 Add String_with_vars.Var.name
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 9750f84b76 Remove String_with_var.Loc.fail
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 843792ad5d Switch from maps to tables for variables
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 43b15bf944 Add Var module to Super_context
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 2f86a4d857 Rename the expand family of functions
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 73cc3b1e7c Simplify Var.t definition
Remove all gatd's and the extra record type

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 972406a0dc Fix static dependencies
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 2a71439c3e Toyish gadtization to remove a few assert falses
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 6159a2909c Remove one off function
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 3a7b62a57d Use the variable for dynamic expansions as well
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 3f7ad78512 Replace more code with the variable system
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 9811031899 Implement a more elaborate variable expansion mechanism
That embeds changes across versions

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 8ef6af2675 Add some helpers to String_with_loc
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 54ff98b36d Rename ROOT to root
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg a0a92d9adb Introduce a Dir primitive to Value
This is like Path but users will know not to infer dependencies from it

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 1a37977f62 Fix error message
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 998ff8ce8c Clarify rename test
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 9d7107d831 Add renamed vars to migration
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg f2f0d240c4 Add tests for lower/uppercase vars
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg 90cde684e6 Remove uppercase vars in dune files
While maintaing them in jbuild files (with proper error messages)

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Jérémie Dimino 3348b6a913
Adapt the behavior of dune subst for dune projects (#960)
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-08 09:51:16 +01:00
Rudi Grinberg 290fffc2f3
Merge pull request #957 from rgrinberg/rename-scope-scope-root
Rename SCOPE_ROOT, ${@}, ${^}, etc.
2018-07-06 19:04:03 +07:00
Rudi Grinberg b8f11b1f04 Make variable rename errors more consistent
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:48:30 +07:00
Rudi Grinberg c4545fce18 Get rid of indexed lookups for deps
Have %{first-dep} to replace %{<}

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:10 +07:00
Etienne Millon 2c29217a20 Add a test case for project_root
Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-07-06 18:46:09 +07:00
Rudi Grinberg ca342fd840 Fix inverted conditionals for version check
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:09 +07:00
Rudi Grinberg 204b21f4fb Rename %{<} to %{deps[0]} and implement %{deps[i]}
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:09 +07:00
Rudi Grinberg 97fba5537d Write lexer to parse %{deps[i]}
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:09 +07:00
Rudi Grinberg 0195b4bd03 Add some helpers to impldement %{deps[i]}
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:09 +07:00
Rudi Grinberg 13c12e9def Rename %{^} to %{deps}
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:45:43 +07:00
Rudi Grinberg a317fb0606 Rename %{@} to %{targets}
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:45:43 +07:00