For packages which don’t provide means to install modules
and expect the user to copy the .lua or library files by hand to the proper locations.
This struct contains categories of files. Each category is itself a table,
where the array part is a list of filenames to be copied.
For module directories only, in the hash part, other keys are identifiers in Lua module format,
to indicate which subdirectory the file should be copied to.
For example, build.install.lua = {[“foo.bar”] = {“src/bar.lua”}} will copy src/bar.lua
to the foo directory under the rock’s Lua files directory.
Encodes extra information about each backend.
When selecting a backend, one may provide extra parameters
to build = { ... } in order to further customize the behaviour of the build step.
Deserialize a json value into a Vec, treating empty json objects as empty lists
If the json value is a string, this returns a singleton vector containing that value.
This is needed to be able to deserialise RockSpec tables that luarocks
also allows to be strings.