summaryrefslogtreecommitdiff
path: root/src/rebar_hooks.erl
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2017-10-23 10:11:06 -0400
committerFred Hebert <mononcqc@ferd.ca>2017-10-23 10:16:55 -0400
commit65e07082018dec2a47f309258761db760100f5f2 (patch)
tree515f45fe857aa9d07f4f121b65aab744ca02e248 /src/rebar_hooks.erl
parent0e15a4cf22b50e4df2100052a332205aeba98972 (diff)
Fix include paths in profile multiapp edge case
The compiling of OTP applications is done by first topographically sorting them according to their dependencies, deps-first. This allows all compilation to take place in order. In the current code, the same logic extends to top-level applications in an umbrella project. Unfortunately, there are cases where this is not going to be true: when an application has extra_src_dirs entries (or additional directories or files) to conditionally compile under some profiles, it may start depending on another top-level application dedicated to that profile for include files. However, such an app will never make it to production and neither will the compilation artifacts that create the dependency. Under that scenario, current rebar3 is unusable. This patch makes it so that the compilation provider instead changes the logic for top-level apps: rather than copying their directories one by one and compiling them in order, it: 1. copies all top-level apps to the build directory so the files are in their proper locations 2. adds the top-level apps to the path (after the global hooks have run, so the existing scope and env has not changed) 3. runs the compilation as usual. Fixes #1651
Diffstat (limited to 'src/rebar_hooks.erl')
0 files changed, 0 insertions, 0 deletions