@@ -367,19 +367,30 @@ defmodule Mix.Dep.Loader do
367
367
{ dep , [ ] }
368
368
end
369
369
370
- defp gleam_dep ( % Mix.Dep { opts: opts } = dep , children , locked? ) do
370
+ defp gleam_dep ( % Mix.Dep { opts: opts } = dep , _children = nil , locked? ) do
371
371
Mix.Gleam . require! ( )
372
372
373
- deps =
374
- if children do
375
- Enum . map ( children , & to_dep ( & 1 , opts [ :dest ] , _manager = nil , locked? ) )
376
- else
377
- config = File . cd! ( opts [ :dest ] , fn -> Mix.Gleam . load_config ( "." ) end )
378
- from = Path . join ( opts [ :dest ] , "gleam.toml" )
379
- Enum . map ( config [ :deps ] , & to_dep ( & 1 , from , _manager = nil , locked? ) )
380
- end
373
+ config = File . cd! ( opts [ :dest ] , fn -> Mix.Gleam . load_config ( "." ) end )
374
+ from = Path . join ( opts [ :dest ] , "gleam.toml" )
375
+ deps = Enum . map ( config [ :deps ] , & to_dep ( & 1 , from , _manager = nil , locked? ) )
376
+
377
+ properties = [
378
+ { :vsn , to_charlist ( config [ :version ] ) } ,
379
+ { :mod , { String . to_atom ( config [ :mod ] ) , [ ] } }
380
+ ]
381
381
382
- { % { dep | opts: Keyword . merge ( opts , app: false , override: true ) } , deps }
382
+ contents = :io_lib . format ( "~p.~n" , [ { :application , dep . app , properties } ] )
383
+
384
+ [ opts [ :build ] , "ebin" , "#{ dep . app } .app" ]
385
+ |> Path . join ( )
386
+ |> File . write! ( IO . chardata_to_string ( contents ) )
387
+
388
+ { dep , deps }
389
+ end
390
+
391
+ defp gleam_dep ( % Mix.Dep { opts: opts } = dep , children , locked? ) do
392
+ dep = % { dep | opts: Keyword . merge ( opts , app: false , override: true ) }
393
+ { dep , Enum . map ( children , & to_dep ( & 1 , opts [ :dest ] , _manager = nil , locked? ) ) }
383
394
end
384
395
385
396
defp mix_children ( config , locked? , opts ) do
0 commit comments