summaryrefslogtreecommitdiff
path: root/src/rebar_dir.erl
Commit message (Collapse)AuthorAgeFilesLines
* compiler behaviour (#1893)Tristan Sloughter2018-10-051-3/+2
| | | | | | | | | | | | | | | | * add compile type for dynamic project compilation * new rebar_compiler abstraction for running multiple compilers rebar_compiler is a new behaviour that a plugin can implement to be called on any ues of the compile provider to compile source files and keep track of their dependencies. * fix check that modules in .app modules list are from src_dirs * use project_type to find module for building projects * allow plugins to add project builders and compilers
* OTP-21 readiness, Full Unicode supportFred Hebert2017-11-161-1/+1
| | | | | | | | | | | | This replaces all deprecated function usage by alternative ones based on a version switch enacted at compile time, preventing all warnings. This will likely introduce some possible runtime errors in using a Rebar3 compiled on OTP-20 or OTP-21 back in versions 19 and earlier, but we can't really work around that. A bunch of dependencies have been updated to support OTP-21 without warnings as well.
* Corrects a fix to src_dir valuesFred Hebert2017-09-271-1/+3
| | | | | | | | | | The previous patch at #7c959cc fixed the usage of duplicate values for directories through relative paths, but mistakenly went overboard and dropped the `./` path, which is still fairly common. Similarly for `../". The code is modified to special-case such values and keep the code working.
* Fix relative src dir specificationsFred Hebert2017-08-301-2/+9
| | | | | | | | When fetching src_dir values, some relative paths can be inserted. When deduplicating the paths on the fetch, this fact means that logically duplicate (but literally different) directories can be returned at once. By normalizing the names, duplication bugs can be resolved.
* Unicode support in all the placesFred Hebert2017-08-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done through 3 main change groups: - replacing `~s` by `~ts` in format strings, so that strings that contain unicode are properly printed rather than crashing - adding the `unicode` argument to all function of the `re` module to ensure transformations on strings containing unicode data are valid instead of crashing (see issue #1302) - replacing `ec_cnv:to_binary/1` and `ec_cnv:to_list/1` with matching functions in `rebar_utils`. The last point has been done, rather than modifying and updating erlware commons, because binary and list conversions can be a contentious subject. For example, if what is being handled is actually bytes from a given binary stream, then forcing a byte-oriented interpretation of the data can corrupt it. As such, it does not appear safe to modify erlware commons' conversion functions since it may not be safe for all its users. Instead, rebar3 reimplements a subset of them (only converting atoms and chardata, ignoring numbers) with the explicit purpose of handling unicode string data. Tests were left as unchanged as possible. This may impact the ability to run rebar3's own suites in a unicode path, but respects a principle of least change for such a large patch.
* Extract code path formatting out of compilerFred Hebert2017-01-211-1/+38
| | | | | | | | This allows to reuse the code for any provider that formats source files out to the user. The option to configure it does remain compiler-centric for backwards compatibility
* Fix Alisdair's review, add more types and docsFred Hebert2016-12-161-18/+73
|
* Type specifications and edocs improvementsFred Hebert2016-11-271-0/+20
| | | | | | Includes improvments and function documentation for all modules (in alphabetical order) up to rebar_core, and may have included more in other modules as I saw fit to dig and understand more of the internals.
* Add 'recursive' optionSiri Hansen2016-11-211-9/+51
| | | | | | | | | | | | The option {recursive,boolean()} can now be set pr directory in 'src_dirs' and 'extra_src_dirs', and on top level in the new 'erlc_compiler' option. Example config: {erlc_compiler,[{recursive,false}]}. {src_dirs,[{"src",[{recursive,true}]}]}. This will cause recursive compilation within the "src" directory, but not in any other directoires.
* Read env var REBAR_CACHE_DIR on rebar3 only onceFrancisco Rojas2016-04-061-8/+2
| | | | | Instead of reading every time that rebar_dir:global_cache_dir/1 is called
* Add spec for global_cache_dirFrancisco Rojas2016-03-171-0/+1
|
* Allows overwrite default cache dir using REBAR_CACHE_DIRFrancisco Rojas2016-03-151-2/+8
| | | | | Allows overwrite the default cache directory using the environment variable REBAR_CACHE_DIR.
* Fix wrong relative path resolutionschutm2015-12-101-1/+30
|
* dedup `src_dirs` and `extra_src_dirs` on readalisdair sullivan2015-10-301-3/+3
|
* function name changes:alisdair sullivan2015-09-141-6/+6
| | | | | `reduce_path/1` -> `canonical_path/1` `relative_path/2` -> `path_from_ancestor/2`
* extract `retarget_path/2', `relative_path/2' and `reduce_path/1' andalisdair sullivan2015-09-131-1/+28
| | | | add tests
* hooks/artifacts are always run/resolved from an app unless at top of umbrellaTristan Sloughter2015-09-061-9/+9
|
* move opts functions to new module rebar_optsTristan Sloughter2015-09-011-4/+4
|
* build on already created AppInfo instead of having to do copyTristan Sloughter2015-08-311-17/+17
|
* wip: move state into app_infoTristan Sloughter2015-08-311-16/+16
|
* Fix common test run duplication on windowsViacheslav Kovalev2015-06-261-1/+5
|
* plugins providerTristan Sloughter2015-06-181-1/+1
|
* allow `src_dirs` and `extra_src_dirs` at the root of the rebar configalisdair sullivan2015-05-301-2/+2
|
* don't lose global plugin providersTristan Sloughter2015-05-211-1/+1
|
* methods for retrieving `src_dirs` and `extra_src_dirs`alisdair sullivan2015-05-191-1/+36
| | | | | | note that now ALL `src_dirs` across included profiles are compiled. previously only the last included profile's `src_dirs` were used
* install plugins from the global config to ~/.cache/pluginsTristan Sloughter2015-05-171-6/+7
|
* Merge branch 'master' into app-discover-profile-duplicationViacheslav V. Kovalev2015-05-011-2/+8
|\ | | | | | | | | Conflicts: test/rebar_profiles_SUITE.erl
| * don't duplicate hooks for top level appTristan Sloughter2015-04-191-1/+2
| |
| * Default deps always to the default profileFred Hebert2015-04-171-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When fetching dependencies for the first time using a profile (`rebar3 as prod release` or `rebar3 ct`), the dependencies get fetched into the non-default profile. This has two consequences: - the files get re-downloaded on follow-up runs - the lock file includes incomplete or too many deps in its list This patch forces dependencies in the default profile to be stored in _build/default/lib even when running under other profiles, then symlinks them to the correct one. This makes it so common dependencies in 'default' be downloaded there and avoids re-downloading them. Should also fix the lock issues.
* | Correctly deduplicate profiles when applyingViacheslav V. Kovalev2015-04-211-1/+1
|/ | | | | Conflicts: src/rebar_state.erl
* rm old beams, make erlcinfo graph per app isntad of global to projectTristan Sloughter2015-04-101-3/+3
|
* treat _checkouts as deps that are always compiledTristan Sloughter2015-03-211-0/+13
|
* name profile directories in `_build` similarly to the argumentsalisdair sullivan2015-03-031-1/+6
| | | | to `as` used to generate them
* use relative path on non-windows and copy if link failsTristan Sloughter2015-02-281-1/+11
|
* copy project apps to deps output dir for compilationTristan Sloughter2015-02-281-11/+0
|
* make base_dir for a run include the profiles in path, link to shared depsTristan Sloughter2015-02-281-1/+4
|
* follow xdg standard. fixes #122Tristan Sloughter2015-02-191-13/+26
|
* rewrite profilesTristan Sloughter2014-12-161-28/+7
|
* change name of config for where project apps lib to project_apps_dirTristan Sloughter2014-12-041-1/+1
|
* add rebar_dirTristan Sloughter2014-12-021-0/+104