REBAR will be set to the rebar binary which was executed and runs the
builds. Enables the use of the same binary for rebar invocations as
part of a pre or post hook like so:
${REBAR} escriptize
On windows, bootstrap.bat failed with next error.
Command 'escriptize' not understood or not applicable
This happens because the drive name in path got from rebar_utils:get_cwd() and base_dir(Config) are different case.
Made the drive name the same lowercase using filename:absname().
This calls the 'p4' command-line tool to checkout and sync Perforce
trees. It involves significantly more special code in Rebar than
using 'git p4', but it eliminates the indirection of
Rebar->Git->Python->Perforce
* update files
* fix Dialyzer warning
* unconditionally enable info fil
* clean-up inconsistencies
* use term_to_binary compression
* use try...catch instead of case...catch...of
* do not write build info file if the graph is unmodified
* store info file as <base_dir>/.rebarinfo
* properly support list of compile directives
* fix regressions:
- Fix a bug in handling of files to compile first.
- If a file that is depended upon itself depends on other files, make sure
those are compiled first. While at it, rename variables for correctness.
Reported-by: David Robakowski
- Make sure that FirstFiles has no dupes and preserves the proper order.
- headers referenced via -include_lib() were not properly resolved to absolute
filenames
- .erl files found in sub dirs of src_dirs were not properly resolved to
absolute filenames
rebar used to mistakenly report plain version strings like
{vsn, "1.0.0"} as follows:
DEBUG: vcs_vsn: Unknown VCS atom in vsn field: "1.0.0"
Properly detect unknown/unsupported version terms and abort
if we encounter one.
While at it, rename a variable in vcs_vsn/3 to be non-misleading.