@@ -54,6 +54,11 @@ def _impl(ctx):
54
54
ctx .label .package ,
55
55
)
56
56
57
+ precompiled_deps = " " .join ([
58
+ dep [ErlangAppInfo ].app_name
59
+ for dep in ctx .attr .deps
60
+ ])
61
+
57
62
if not ctx .attr .is_windows :
58
63
output = ctx .actions .declare_file (ctx .label .name )
59
64
script = """set -euo pipefail
@@ -94,9 +99,11 @@ export ERL_COMPILER_OPTIONS=deterministic
94
99
"${{ABS_ELIXIR_HOME}}"/bin/mix local.hex --force
95
100
"${{ABS_ELIXIR_HOME}}"/bin/mix local.rebar --force
96
101
"${{ABS_ELIXIR_HOME}}"/bin/mix deps.get
97
- if [ ! -d _build/${{MIX_ENV}}/lib/rabbit_common ]; then
98
- cp -r ${{DEPS_DIR}}/* _build/${{MIX_ENV}}/lib
99
- fi
102
+ for d in {precompiled_deps}; do
103
+ mkdir _build/${{MIX_ENV}}/lib/$d
104
+ ln -s ${{DEPS_DIR}}/$d/ebin _build/${{MIX_ENV}}/lib/$d
105
+ ln -s ${{DEPS_DIR}}/$d/include _build/${{MIX_ENV}}/lib/$d
106
+ done
100
107
"${{ABS_ELIXIR_HOME}}"/bin/mix deps.compile
101
108
"${{ABS_ELIXIR_HOME}}"/bin/mix compile
102
109
@@ -131,6 +138,7 @@ set -x
131
138
elixir_home = elixir_home ,
132
139
package_dir = package_dir ,
133
140
deps_dir = deps_dir ,
141
+ precompiled_deps = precompiled_deps ,
134
142
rabbitmq_run_cmd = ctx .attr .rabbitmq_run [DefaultInfo ].files_to_run .executable .short_path ,
135
143
)
136
144
else :
@@ -162,6 +170,11 @@ set MIX_ENV=test
162
170
echo y | "{elixir_home}\\ bin\\ mix" local.hex --force || goto :error
163
171
echo y | "{elixir_home}\\ bin\\ mix" local.rebar --force || goto :error
164
172
"{elixir_home}\\ bin\\ mix" deps.get || goto :error
173
+ for %%d in ({precompiled_deps}) do (
174
+ mkdir _build\\ %MIX_ENV%\\ lib\\ %%d
175
+ robocopy %DEPS_DIR%\\ %%d\\ ebin _build\\ %MIX_ENV%\\ lib\\ %%d /E /NFL /NDL /NJH /NJS /nc /ns /np
176
+ robocopy %DEPS_DIR%\\ %%d\\ include _build\\ %MIX_ENV%\\ lib\\ %%d /E /NFL /NDL /NJH /NJS /nc /ns /np
177
+ )
165
178
"{elixir_home}\\ bin\\ mix" deps.compile || goto :error
166
179
"{elixir_home}\\ bin\\ mix" compile || goto :error
167
180
@@ -179,6 +192,7 @@ exit /b 1
179
192
elixir_home = windows_path (elixir_home ),
180
193
package_dir = windows_path (ctx .label .package ),
181
194
deps_dir = deps_dir ,
195
+ precompiled_deps = precompiled_deps ,
182
196
rabbitmq_run_cmd = ctx .attr .rabbitmq_run [DefaultInfo ].files_to_run .executable .short_path ,
183
197
)
184
198
0 commit comments